sympy.plotting.plot奇怪的xlabel位置

时间:2015-01-21 22:06:52

标签: 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))

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

指示程​​序以标签为中心的任何方式?

1 个答案:

答案 0 :(得分: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')

image showing axis label centered below graph

这会将图表保存为test.png(参见图片)。如果您正在使用像jupyter这样的gui,您也可以通过调用fig来显示该情节,但在命令行界面中这不起作用。我不知道任何方便的方式来显示情节(如p1.show()会)只使用sympy界面(所以不导入matplotlib.pyplot)。如果您知道如何使用matplotlib,则可以更详细地操作图形和轴对象。