我需要构建一个由点数组设置的表达式图形和图形,并返回图像。要构建表达式图表,我使用sympy.plot
,并在我使用matplotlib
的点上构建图表。
以下是一个示例代码:
from os import remove
from matplotlib import pyplot as plt
from PIL import Image
from sympy import plot, symbols
def plot_graphic(x, y, expression, file_name):
file = '{}.png'.format(file_name)
x1, y1 = list(x), list(y)
plt.plot(x1, y1)
plt.savefig(file)
plt.close()
del y1
img = Image.open(file)
remove(file)
yield img
x = symbols('x')
plot(expression.args[1], (x, x1[0], x1[-1]), show=False).save(file)
img = Image.open(file)
remove(file)
yield img
x,y是发电机。如何将这些图像组合在一起?
答案 0 :(得分:0)
我找到了解决方案。 Sympy有一种绘制点的方法。您需要创建一个List2DSeries
对象来执行必要的操作,并使用append
方法添加到其他图形中。结果代码如下所示。
from os import remove
from PIL import Image
from sympy import plot, symbols
from sympy.plotting.plot import List2DSeries
def plot_graphic(x, y, expression, file_name):
file = '{}.png'.format(file_name)
x1, y1 = list(x), list(y)
x = symbols('x')
graph = plot(expression.args[1], (x, x1[0], x1[-1]), show=False, line_color='r')
graph.append(List2DSeries(x1, y1))
graph.save(file)
img = Image.open(file)
remove(file)
return img