如何在 Python PyX 中隐藏轴文本

Posted

技术标签:

【中文标题】如何在 Python PyX 中隐藏轴文本【英文标题】:How do I hide the axis text in Python PyX 【发布时间】:2018-06-29 15:55:06 【问题描述】:

我只是想得到一个图表,但轴上没有任何数字。 比方说:

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

如何去掉轴标签?

【问题讨论】:

我建议在轴章节(第 10 章,第 55 页)中阅读 pyx 手册(可在 pyx.sourceforge.net/manual.pdf 免费获得) @HolyDanna 我同意了。语法并不那么明显。我可以在轴上得到不同的标签,但我不能完全取出标签。 【参考方案1】:

要去掉轴标签处的文字,最简单的解决办法就是将轴绘制器的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 版本中添加这样的合作伙伴。

【讨论】:

以上是关于如何在 Python PyX 中隐藏轴文本的主要内容,如果未能解决你的问题,请参考以下文章

Python PyX plot:更改轴刻度文本颜色

如何使用 Python 修复 Pyx 模块中的回溯错误?

如何在 Windows 8.1 中的 anaconda(python3.6) 中将 cython pyx 构建为 pyd?

Pyx unicode 文本

PyX中文本的中心对齐

在 PyX(python)中填充闭合曲线失败