でsympyプロットをプロットする)。これはPythonで働くプロットのデモsympyコードです http://host:port/app/controller/myplot4.pngは、私は(web2pyの機能myplot4を書き込むことにより、web2pyの中sympyプロットをプロットしたいのweb2py
を使用してそれを呼び出しますシェル。
from sympy import symbols
from sympy.plotting import plot
x = symbols('x')
p1 = plot(x*x)
p2 = plot(x)
p1.append(p2[0])
p1
私はこのレシピは正常に動作しますが、sympyインポートがプロット機能
ある中で誰かがどのようにプロットするために同様の機能を記述するために私に言うことができるのに対し、それはFigureCanvasAggと図をインポートhttp://www.web2pyslices.com/slice/show/1357/matplotlib-howto
でレシピを見つけましたsympyのweb2pyのプロット
from matplotlib.backends.backend_agg
import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
def pcolor2d(title='title',xlab='x',ylab='y',
z=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]):
fig=Figure()
fig.set_facecolor('white')
ax=fig.add_subplot(111)
if title: ax.set_title(title)
if xlab: ax.set_xlabel(xlab)
if ylab: ax.set_ylabel(ylab)
image=ax.imshow(z)
image.set_interpolation('bilinear')
canvas=FigureCanvas(fig)
stream=cStringIO.StringIO()
canvas.print_png(stream)
return stream.getvalue()
は、次のような行動をしてみてください(そうでないか)このレシピに基づいて:
def myplot2():
response.headers['Content-Type']='image/png'
return pcolor2dt(z=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]])
と
http://host:port/app/controller/myplot2.png