20

ベクトルプロットを作成する必要があり、軸やタイトルなどのないベクトルを表示したいので、次のようにします。

pyplot.figure(None, figsize=(10, 16), dpi=100)
pyplot.quiver(data['x'], data['y'], data['u'], data['v'], 
              pivot='tail', 
              units='dots', 
              scale=0.2,
              color='black')

pyplot.autoscale(tight=True)
pyplot.axis('off')
ax = pyplot.gca()
ax.xaxis.set_major_locator(pylab.NullLocator())
ax.yaxis.set_major_locator(pylab.NullLocator())
pyplot.savefig("test.png", 
               bbox_inches='tight', 
               transparent=True,
               pad_inches=0)

1000 x 1600の画像を作成しようと努力したにもかかわらず、775 x 1280の画像を取得しました。希望のサイズにするにはどうすればよいですか?ありがとうございました。

更新提示されたソリューションは機能しますが、私の場合は軸の制限も手動で設定する必要がありました。そうしないと、matplotlibは「タイトな」バウンディングボックスを理解できませんでした。

4

1 に答える 1

21
import matplotlib.pyplot as plt
import numpy as np

sin, cos = np.sin, np.cos

fig = plt.figure(frameon = False)
fig.set_size_inches(5, 8)
ax = plt.Axes(fig, [0., 0., 1., 1.], )
ax.set_axis_off()
fig.add_axes(ax)

x = np.linspace(-4, 4, 20)
y = np.linspace(-4, 4, 20)
X, Y = np.meshgrid(x, y)
deg = np.arctan(Y**3-3*Y-X)
plt.quiver(X, Y, cos(deg), sin(deg), pivot='tail', units='dots', color='red')
plt.savefig('/tmp/test.png', dpi=200)

収量

ここに画像の説明を入力してください

図を5x8インチに設定すると、結果の画像を1000x1600ピクセルにすることができます。

fig.set_size_inches(5, 8)

と保存DPI=200

plt.savefig('/tmp/test.png', dpi=200)

境界線を削除するコードはここから取得されました。

(1000x1600はかなり大きいので、上に投稿された画像は縮尺どおりではありません)。

于 2012-10-22T19:54:38.460 に答える