PyX绘图:修改坐标轴刻度文本颜色或隐藏刻度文本
PyX绘图:调整Y轴刻度文本样式与隐藏刻度文本
针对你提出的两个PyX绘图需求,我整理了对应的修改方案,直接看代码和解释:
需求1:Y轴刻度线黑色,刻度文本白色
要实现这个效果,我们需要自定义Y轴的刻度格式,通过graph.axis.tick.tickformat来分别设置刻度线(tick)和文本(text)的属性。把文本的颜色设为白色,刻度线保持默认黑色即可:
import pyx from pyx import graph g = graph.graphxy( width=8, x=graph.axis.log(min=1e-1, max=1e4, title=r"$x$-axis"), # 自定义Y轴刻度格式 y=graph.axis.lin( max=5, title=r"$y$-axis", tick=graph.axis.tick.tickformat( tickattrs=[pyx.color.black], # 刻度线黑色 textattrs=[pyx.color.white] # 刻度文本白色 ) ) ) g.plot(graph.data.function("y(x)=tan(log(1/x))**2")) g.writeEPSfile("axis_white_text")
需求2:移除Y轴刻度文本,保留刻度线
这个需求更简单,我们可以直接使用PyX提供的graph.axis.tick.notext()来隐藏刻度文本,同时保留刻度线:
import pyx from pyx import graph g = graph.graphxy( width=8, x=graph.axis.log(min=1e-1, max=1e4, title=r"$x$-axis"), # 隐藏Y轴刻度文本,保留刻度线 y=graph.axis.lin( max=5, title=r"$y$-axis", tick=graph.axis.tick.notext() ) ) g.plot(graph.data.function("y(x)=tan(log(1/x))**2")) g.writeEPSfile("axis_no_text")
如果你想更灵活地控制(比如后续要调整刻度线样式),也可以用自定义tickformat,把文本输出设为空:
tick=graph.axis.tick.tickformat(textformat=lambda value, tick: "")
两种方式都能达到移除刻度文本但保留刻度线的效果,选你觉得顺手的就行~
内容的提问来源于stack exchange,提问作者Nigel1
相关产品推荐
相关产品推荐

