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