如何在Python PyX中隐藏轴文本

时间:2018-06-29 15:55:07

标签: python plot pyx

我只是想得到一个图,但是轴上没有任何数字。 假设:

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")

如何清除轴标签?

1 个答案:

答案 0 :(得分:2)

要摆脱轴标签上的文本,最简单的解决方案是将轴画器的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和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版本中添加这样的伙伴。