sympy.plotting.plot 奇怪的 xlabel 位置

sympy.plotting.plot strange xlabel position

在 sympy 的 plot 语句中将 '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,并单击顶部的复选标记以交互方式设置标签,它会将其正确放置在轴的中间。

有什么方法可以指示程序将标签居中?

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 这样的图形用户界面,您也可以通过调用 fig 来显示绘图,但在命令行界面中这将不起作用。我不知道有什么方便的方法可以仅使用 sympy 界面(因此无需导入 matplotlib.pyplot)来显示情节(如 p1.show() 那样)。但是,如果您知道如何使用 matplotlib,则可以更详细地操作图形和轴对象。