LayMesh文档
EN

柱图与阶梯#

用途与概念#

bar 的 positions、values、baseline 和 data_width 都是数据单位。step 使用 pre/mid/post 定义阶跃出现的位置;area 把曲线与基线之间的区域填充。

最小完整示例#

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

plot-bar.lay
# Minimal complete example: plot.barpage=canvas(size=(100mm,75mm),background="#ffffff")p=plot(size=(86mm,62mm),x=axis(range=(0,4)),y=axis(range=(0,5)))p.bar(positions=[1,2,3],values=[1,4,2],data_width=0.6)page.add(p,offset=(7mm,6mm))

预览

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

尚未运行

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

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

参数与默认行为#

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

组合用法#

用不同 positions 手工形成分组柱,使用逐点 baseline 形成堆叠柱。将 hline 的零线、step 曲线和带透明度 area 组合,可比较离散与连续表达。

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

常见错误与限制#

柱宽不是 mm;不得与物理线宽混淆。不会自动决定类别位置、排序或堆叠。负 values 可以落在基线另一侧,log 轴仍受正值要求约束。

逐项功能说明#

plot-bar#

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

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

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

plot-step#

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

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

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

plot-area#

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

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

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

详细行为与补充示例#

参数#

参数 用途 默认或要求
data_width 柱宽,数据单位 0.8
baseline 柱基线 0
where 阶梯位置 post

常见用法#

柱位置、宽度和 baseline 使用数据单位。分组通过显式位置实现,堆叠通过 baseline 实现。step 的 pre/mid/post 控制阶梯位置,保留输入顺序。

完整参数与规则

限制与相关主题#

折线与散点 · 误差棒与填充带 · 热图与等高线 · 多轴与断轴