sympy.plotting.plot 奇怪的 xlabel 位置

5

在sympy的绘图语句中,当将'xlabel'设置为字符串值时,标签将放置在图形的最右侧。如果程序中未设置标签,并且我点击复选框并在那里设置标签,则它将定位在X轴的中间。

以下是一个例子:

from sympy import sin
from sympy import symbols
from sympy.plotting import plot

x = symbols('x')
y = sin(x)

p1=plot(y,(x,0,7),xlabel="x data")
p2=plot(y,(x,0,7))

图1的X轴标签在最右边。 如果您打开图2,并单击顶部的复选框以交互方式设置标签,则会将其正确地放置在轴的中间。

是否有办法指示程序居中标签?

1个回答

3

Sympy的matplotlib作图实现虽然方便,但与完整的matplotlib功能相比略显有限。如果你想要改变坐标轴上标签的位置,你需要访问后端ax对象来进行操作。以下是具体步骤:

fig = p1._backend.fig
ax = p1._backend.ax

ax.xaxis.set_label_coords(0.5,0)

fig.savefig('test.png')

显示图例标签居中于图形下方的图像

这将把你的图形保存为test.png(见图片)。如果你正在使用像Jupyter这样的GUI,你可以通过调用fig来显示绘图,但在命令行接口中,这种方法是行不通的。我不知道是否有任何方便的方式来显示绘图(就像p1.show()那样),只使用sympy界面(而没有导入matplotlib.pyplot)。但如果你知道如何使用matplotlib,你可以更详细地处理图形和轴对象。


似乎不再起作用了。至少对于1.8版本是这样的。 - user48956
1
在尝试无果地访问 SymPy 1.8 中的绘图选项后,我发现标签字符串可以通过预先或附加空格来对齐。 - Rainer Glüge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接