PyX柱状图轴配置问题:自定义X轴刻度与添加Y轴标签
PyX柱状图:X轴刻度筛选与Y轴标签添加解决方案
问题1:仅显示X轴部分刻度(如偶数2、4、6……)
对于nestedbar类型的X轴,可通过自定义刻度筛选规则实现只显示指定刻度。初始化X轴时,通过ticks参数传入带筛选逻辑的刻度生成器,只保留符合条件的刻度值(比如偶数)即可。
问题2:为Y轴添加轴标签
创建graphxy对象时,给Y轴指定label参数,直接传入所需的标签文本就能添加Y轴标签。
修改后的完整示例代码
import pyx from pyx import graph # 自定义X轴刻度:仅保留偶数刻度 def even_tick_generator(min, max, step, graphaxis): for val in pyx.graph.axis.tick.tick(min, max, step, graphaxis): if val.int() % 2 == 0: yield val # 配置图形轴参数 g = graph.graphxy( width=8, x=graph.axis.nestedbar(ticks=even_tick_generator), # 应用自定义刻度规则 y=graph.axis.linear(label="Y轴数据") # 设置Y轴标签 ) # 绘制柱状图 g.plot([ graph.data.file("minimal.dat", xname="$0, 0", y=2), graph.data.file("minimal.dat", xname="$0, 1", y=3) ], [graph.style.bar()]) g.writeEPSfile("compare")
补充说明
- 若需筛选其他规则的刻度,只需修改
even_tick_generator中的判断条件(如筛选奇数、间隔3的数值等)。 - Y轴标签的字体、大小等样式可通过
labelattrs参数调整,例如labelattrs=[pyx.text.size.Large]。
内容的提问来源于stack exchange,提问作者Nigel1
相关产品推荐
相关产品推荐

