以前、複数の Matplotlib フィギュア間の干渉に問題がありました。最後に、いくつかのpyplot関数がフィギュアインスタンスにアタッチされていないが、並行して作成された他のフィギュアインスタンスでレンダリングできるという問題を追跡しました。
コード例を次に示します。
from django.http import HttpResponse
from numpy import arange, meshgrid
from matplotlib.mlab import bivariate_normal
def show_chart(request):
delta = 0.025
x = arange(-3.0, 3.0, delta)
y = arange(-2.0, 2.0, delta)
X, Y = meshgrid(x, y)
Z1 = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10.0 * (Z2 - Z1)
from matplotlib.pyplot import figure, contour
fig1 = figure(figsize=(4, 4), facecolor='white')
contour(X, Y, Z)
response = HttpResponse(content_type='image/png')
fig1.savefig(response, format='png')
fig1.clear()
return response
上記の例の等高線 pyplot 関数は、fig1 でレンダリングできますが、並行して生成される他の Figure でレンダリングされることもあります。それはとても迷惑です。輪郭 pyplot 関数を fig1 にアタッチする方法はありますか?