如何在Python PyX中隐藏轴文本

2024-10-02 20:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想得到一个轴上没有数字的图形。 比如说:

from math import pi
from pyx import *

g = graph.graphxy(width=8)
g.plot(graph.data.paramfunction("k", 0, 2*pi, "x, y = sin(2*k), cos(3*k)"))
g.writePDFfile("lissajous")

如何摆脱轴标签?你知道吗


Tags: fromimport图形dataplotpi数字math
1条回答
网友
1楼 · 发布于 2024-10-02 20:30:18

要除去axis标签上的文本,最简单的解决方案是将axis painter的labelattrs设置为None,如Python PyX plot: change axes tick text color的答案所述:

from math import pi
from pyx import *

a = graph.axis.linear(painter=graph.axis.painter.regular(labelattrs=None))
g = graph.graphxy(width=8, x=a, y=a)
g.plot(graph.data.paramfunction("k", 0, 2*pi, "x, y = sin(2*k), cos(3*k)"))
g.writePDFfile("lissajous")

在这里保持轴的刻度。如果您还想消除记号,可以同时禁用painter alltogether和linkedpainter(否则,您会将轴保留在图形的另一侧,仅显示记号):

from math import pi
from pyx import *

a = graph.axis.linear(painter=None, linkpainter=None)
g = graph.graphxy(width=8, x=a, y=a)
g.plot(graph.data.paramfunction("k", 0, 2*pi, "x, y = sin(2*k), cos(3*k)"))
g.writePDFfile("lissajous")

然而,这意味着你完全失去了轴心。一个简单的解决方法是在图中添加一个backgroundattrs=[deco.stroked()],尽管从技术上讲,它是非常不同的,而且有点错误。你知道吗

不幸的是,整个轴分区计算一直在运行,这也意味着它将根据数据范围不断扩展轴范围。解决方法应该是使用最简单的轴方案,在轴范围的开始和结束处添加标签和记号,然后禁用它们。这可能在所有简单的情况下都会很方便,而且我们没有这种方法。我将在未来的PyX版本中添加这样一个parter。你知道吗

相关问题 更多 >