You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:41:04