使用多个范围时Python Symphy的绘图图例

2024-09-29 22:08:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Symphy的plotting模块,但是当我开始有多条不同范围的线时,图例就停止工作了(绘制函数f(x),其定义取决于x,如下面的示例所示)。 事实上,我在任何地方都没有见过这样的例子:

from sympy import *
plt = plot((x**2,(x,-1,0)),(x**3,(x,0,1)),label='$f(x)$',show=False)
plt[0].legend = True
plt.show()

这里的图例被忽略。我也试过了

plt.legend = True

不是指定plt[0],而是Python说

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我的最终目标是 a plot with lines of multiple colors, representing functions which have a different definition before and after a given value of x 我把它们加在一起,比如说,如果plt1和plt2都有两个部分

plt = plt1
plt.append(plt2[0])
plt.append(plt2[1])

有人知道标签和图例在这种情况下是如何工作的吗? 多谢各位


Tags: 模块oftrueplotvalueshowwithplt
1条回答
网友
1楼 · 发布于 2024-09-29 22:08:30

最简单的方法是直接使用matplotlib。您可以向Symphy询问它将绘制的点列表,然后将其与matplotlib一起使用,如下所示:

In [9]: import sympy                                                                                                                           

In [10]: line1, line2 = sympy.plot((x**2,(x,-1,0)),(x**3,(x,0,1)),label='$f(x)$',show=False)                                                   

In [11]: x1, y1 = line1.get_points()                                                                                                           

In [12]: import matplotlib.pyplot as plt                                                                                                       

In [13]: plt.plot(x1, y1)                                                                                                                      
Out[13]: [<matplotlib.lines.Line2D at 0x120a9da90>]

In [14]: plt.show()  

然后可以使用matplotlib的图例函数

相关问题 更多 >

    热门问题