【问题标题】:sympy.plotting.plot strange xlabel positionsympy.plotting.plot 奇怪的 xlabel 位置
【发布时间】:2015-01-21 22:06:51
【问题描述】:

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

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

【问题讨论】:

    标签: python plot sympy


    【解决方案1】:

    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 之类的 gui,您还可以通过调用 fig 来显示绘图,但在命令行界面中这将不起作用。我不知道任何仅使用 sympy 界面(因此无需导入 matplotlib.pyplot)来显示绘图的便捷方式(如 p1.show() 会)。如果您知道如何使用 matplotlib,则可以更详细地操作图形和轴对象。

    【讨论】:

    • 似乎不再有效。至少 1.8。
    • 在尝试访问 SymPy 1.8 中的绘图选项失败后,我发现标签字符串可以通过前置或附加空格来对齐。
    猜你喜欢
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多