在 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,那么您可以更详细地操作图形和轴对象。