2012-04-17 3 views
2

ヒートマップをEPSファイルとして補間なしでエクスポートしたいとします。 imshow()interpolation='nearest'を使用して、PDF(またはPNGまたはSVG)としてエクスポートすると、画像は補間なしで正しく表示されます。 EPSとしてエクスポートすると、interpolation='nearest'は無視されるようです。Matplotlib EPSエクスポートは補間= 'nearest'を無視します

補間なしでEPSとして書き出す方法はありますか?ここで

は、エクスポートファイルタイプの違いを示すサンプルコードです:matplotlibのの

import numpy as np 
import matplotlib.pyplot as plt 

data = np.random.rand(4,4) 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.imshow(data,interpolation='nearest') 

fig.savefig('test.eps') 
fig.savefig('test.pdf') 
fig.savefig('test.png') 
+0

私は誤りを再現できません。コードをコピー&ペーストして保存した図を調べると、すべて同じに見えます。私はPython 2.7.1でUbuntu 11.04でmatplotlibバージョン0.99.3を使用しています。 – ely

+0

私はPython 2.7.2でMac OSXでmatplotlib 1.0.1を使用しています。 OS固有のEPSバックエンドの違いによるものでしょうか? – johndmurray

+0

確かに可能です。試してみることの1つは、imagemagickのようなコマンドラインユーティリティを使用して、保存後にPDFをEPSに変換することです。それは痛みですが、うまくいくかもしれません。それがうまくいけば、 'os'モジュールを使ってPythonスクリプトから毎回コマンドを発行することさえできます。 – ely

答えて

2

新しいバージョン所望の効果を生成する可能性がある引数interpolation='none'を、受け入れます。あなたのコードでは、これは読むでしょう

import numpy as np 
import matplotlib.pyplot as plt 

data = np.random.rand(4,4) 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.imshow(data,interpolation='none') 

fig.savefig('test.eps') 
fig.savefig('test.pdf') 
fig.savefig('test.png') 
関連する問題