sympy.plotting.plot 奇怪的 xlabel 位置

Mil*_*cus 5 python plot sympy

在 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))
Run Code Online (Sandbox Code Playgroud)

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

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

小智 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')
Run Code Online (Sandbox Code Playgroud)

显示位于图表下方中心的轴标签的图像

这会将您的图表另存为test.png(见图)。如果您使用像 jupyter 这样的 gui,您还可以通过调用 显示绘图fig,但在命令行界面中这将不起作用。我不知道有什么方便的方法来p1.show()仅使用 sympy 界面(因此无需 import matplotlib.pyplot)来显示绘图(就像会那样)。如果您知道如何使用 matplotlib,那么您可以更详细地操作图形和轴对象。