LayMesh文档
EN

直方图与 ECDF#

用途与概念#

hist 把原始观测按 bins 分箱;ECDF 在排序观测处计算累计比例。统计基于原始数据,与轴的显示变换无关。stat=count/probability/density 决定柱高含义。

最小完整示例#

此文件包含画布及必要定义,可直接运行 laymesh validate 或 laymesh render,不依赖前文未声明的变量。

plot-hist.lay
# Minimal complete example: plot.histpage=canvas(size=(100mm,75mm),background="#ffffff")p=plot(size=(86mm,62mm),x=axis(range=(0,4)),y=axis(range=(0,5)))p.hist(values=[0.2,0.8,1.1,1.2,2.4,3.1],bins=[0,1,2,3,4])page.add(p,offset=(7mm,6mm))

预览

背景
Plot Hist
原始示例
合计 —
详情

尚未运行

本设备浏览器实测;不含防抖等待。

修改仅保留在本页
依赖文件
  • examples/manual/plot-hist.lay

参数与默认行为#

裸几何长度使用画布单位,裸字号和描边宽度使用 pt。显式调用参数优先于继承和主题默认值;下面的接口参考逐项列出允许类型、可选值与默认来源。

组合用法#

显式 bins 可处理不等宽区间,density 的归一化按区间宽度计算。将 ECDF 绑定到范围为 0–1 的副轴,可以与频数或密度柱图同页比较。

statistics.lay
# Statistics are evaluated in original data units. Positions preserve input order.page=canvas(size=(274 mm,128 mm),background="#ffffff")s=plot_style(font_family="DejaVu Sans",font_size=7 pt)a=plot(size=(88 mm,91 mm),plot_area=box(offset=(16 mm, 15 mm), size=(62 mm, 55 mm)),style=s, x=axis(range=(0,5),ticks=[1,2,3,4],tick_text=["A","B","C","D"]),y=axis(label="Change",range=(-2,7),ticks=[-2,0,2,4,6]))bar=a.bar(positions=[1,2,3,4],values=[2,-1,4,3],data_width=0.65,fill="#e0e6eb",border_color="#264b69",hatch="slash",hatch_spacing=1.5 mm,label="Change")a.bar(positions=[1,3,4],values=[1,1,2],baseline=[2,4,3],data_width=0.65,fill="none",border_color="#a04725",hatch="cross",label="Stack")a.hline(y=0,color="#777777",line_width=0.3 pt)a.step(x=[0.5,1.5,2.5,3.5,4.5],y=[1,2,1,3,4],where= post,color="#a04725")ca=page.add(a,offset=(4 mm,10 mm))page.add(text(content="(a) Bars, stacks and steps",font_family="DejaVu Sans",font_size=9 pt),target=ca.plot_top_left,offset=(0 mm,-12 mm)) b=plot(size=(104 mm,91 mm),plot_area=box(offset=(16 mm, 15 mm), size=(62 mm, 55 mm)),style=s, x=axis(label="Observation",range=(0,6),ticks=[0,2,4,6]),y=axis(label="Density",range=(0,0.5),ticks=[0,0.2,0.4]))b.add_axis(name="cumulative",side= right,axis=axis(label="ECDF",range=(0,1),ticks=[0,0.5,1],line_color="#a04725"))hist=b.hist(values=[0.4,0.8,1.1,1.2,1.6,2.2,2.3,2.8,3.1,3.8,4.1,5.4],bins=[0,1,2,3,4,6],stat= density,fill="#d9e5dd",border_color="#34705a",label="Density")ecdf=b.ecdf(values=[0.4,0.8,1.1,1.2,1.6,2.2,2.3,2.8,3.1,3.8,4.1,5.4],y_axis="cumulative",color="#a04725",label="ECDF")cb=page.add(b,offset=(90 mm,10 mm))page.add(text(content="(b) Histogram and ECDF",font_family="DejaVu Sans",font_size=9 pt),target=cb.plot_top_left,offset=(0 mm,-12 mm)) c=plot(size=(88 mm,91 mm),plot_area=box(offset=(20 mm, 15 mm), size=(62 mm, 55 mm)),style=s, x=axis(range=(0,4),ticks=[1,2,3],tick_text=["Box","KDE","Constant"]),y=axis(label="Observation",range=(0,11),ticks=[0,5,10]))box=c.boxplot(values=[1,2,2,3,3,4,5,10],position=1,data_width=0.65,fill="#e0e6eb",border_color="#264b69",label="R-7 / 1.5 IQR")violin=c.violin(values=[1,1.5,2,2.2,2.4,3,3.5,4.8,5],position=2,data_width=0.75,fill="#e8d8d1",border_color="#a04725",label="Gaussian KDE")c.violin(values=[3,3,3],position=3,data_width=0.65,color="#34705a")cc=page.add(c,offset=(179 mm,10 mm))page.add(text(content="(c) Box and violin",font_family="DejaVu Sans",font_size=9 pt),target=cc.plot_top_left,offset=(0 mm,-12 mm))page.add(legend(layers=[bar,hist,ecdf,box,violin],columns=5,gap=3 mm,background="none",sample_width=5 mm,sample_gap=2 mm),offset=(25 mm,105 mm))

预览

背景
基础图层与描述统计
原始示例
合计 —
详情

尚未运行

本设备浏览器实测;不含防抖等待。

修改仅保留在本页
依赖文件
  • examples/plot/statistics.lay

常见错误与限制#

weights 必须非负且与观测数量匹配。密度柱高并非单个区间概率,要乘区间宽度。自动分箱和加权统计规则见详细参数说明。

逐项功能说明#

plot-hist#

直方图图层:向当前图表添加数据,通过物理样式参数控制外观,并使用命名轴参数选择数据映射。

返回:图层句柄,可用于共享图例。

最小完整源码 · 组合源码 · 全部参数

plot-ecdf#

经验累积分布图层:向当前图表添加数据,通过物理样式参数控制外观,并使用命名轴参数选择数据映射。

返回:图层句柄,可用于共享图例。

最小完整源码 · 组合源码 · 全部参数

详细行为与补充示例#

参数#

参数 用途 默认或要求
bins 箱数或递增边界 10
stat 统计量 count
weights 非负等长权重 可选

常见用法#

直方图支持 count、probability 和 density;箱边界严格递增,最后一箱含右端点。ECDF 排序并合并重复值,使用右连续曲线。统计在原始数据单位中计算。

完整参数与规则

限制与相关主题#

箱线图与小提琴图