Sympyを使用してグラフィックスの操作方法についていくつか質問があります。Sympyとプロット
マイコード:
from sympy import *
x, y = symbols("x y")
plot_implicit(Eq(x**2 + y**2, 4), (x, -3, 3), (y, -3, 3))
1)のグラフは、x軸に沿って延伸得られます。曲線が円のように見えたようにする方法
?
2)グラフに他の要素を追加する方法。例えば、点O(0,0)および線y = x。
Sympyを使用してグラフィックスの操作方法についていくつか質問があります。Sympyとプロット
マイコード:
from sympy import *
x, y = symbols("x y")
plot_implicit(Eq(x**2 + y**2, 4), (x, -3, 3), (y, -3, 3))
1)のグラフは、x軸に沿って延伸得られます。曲線が円のように見えたようにする方法
?
2)グラフに他の要素を追加する方法。例えば、点O(0,0)および線y = x。
3210のドキュメンテーション文字列によると、あなたはSymPyが_backend
属性によって、使用し、その後、他のmatplotlibのオブジェクトとしてのプロパティを変更することmatplotlibの軸とフィギュアのバックエンドのラッパーを取得することができます。この例をチェックしてください:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib notebook
from sympy import *
x, y = symbols("x y")
hp = plot_implicit(Eq(x**2 + y**2, 4), (x, -3, 3), (y, -3, 3))
fig = hp._backend.fig
ax = hp._backend.ax
xx = yy = np.linspace(-3,3)
ax.plot(xx,yy) # y = x
ax.plot([0],[0],'o') # Point (0,0)
ax.set_aspect('equal','datalim')
fig.canvas.draw()
Sympyプロットオブジェクトは他にプロットオブジェクトを追加することができますが、これは(少なくとも私とJupyterを使用するために)動作しないメソッドを追加して拡張しています。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1,1)
xx,yy = np.linspace(-3,3), np.linspace(-3,3)
x,y = np.meshgrid(xx,yy)
ax.contour(x, y, (x**2+y**2-4), [0]);
ax.plot([0],[0],"o")
ax.plot(xx,yy)
ax.set_aspect('equal','datalim')
最初
別のオプションは使用が唯一のmatplotlibのです私のためのオプションも動作しません。しかし、2番目の方法は理想的です! eval: 'ax.contour(x、y、eval(str(a_symbolic_expression))、[0]);'を使用する場合。 – pank
おそらく関連:https://stackoverflow.com/questions/46810880/display-two-sympy-plots-as-two-matplotlib-subplots – ImportanceOfBeingErnest