14

Python でmatplotlibを使用して一連のデータ ポイント (数千) をプロットしようとしているため、各マーカーを非常に小さく正確にする必要があります。可能な限り最小で最も単純なマーカーを取得するにはどうすればよいですか? このコマンドを使用してデータをプロットします。

 matplotlib.pyplot( x , y ,'.',markersize=0.1,linewidth=None,markerfacecolor='black')

それから私はそれを見てpl.show()、それを保存することができます。または、コードで直接使用plt.savefig('filename.ps')して保存します。問題は次のとおりpl.show()です。GUI でファイルを表示すると、小さな小さな黒いマークが表示されますが、show()GUI からファイルに保存するか、直接使用して作成したファイルsavefigを表示すると、ps見た目が異なります。各マーカーは、その周りに小さな青い光輪を獲得しており (あたかもそれらをデフォルトの青い線で接続するために各点から始まったかのように見えますが、そうではありませんでした)、スタイルはすべて間違っています。保存するとスタイルが変わるのはなぜですか? Python がマーカーのスタイルを強制しないようにするにはどうすればよいですか? はい、私はCairoPlotのようないくつかの代替パッケージを見てきましたが、今のところ matplotlib を使い続けたいです。

更新: PNG に保存すると最初に色が正常になることがわかりましたが、.ps後で (PDF に含めるために) 再度保存するときに画像の変換が強制され、品質が低下します。ファイルのベクトルの性質を保持し、適切なフォーマットを取得するにはどうすればよいですか?

4

3 に答える 3

20

ベクトル化された見栄えの良い出力を得るには、'.'マーカー スタイルを使用しないでください。例として'o'(円) または's'(四角) (help(plot)オプションについては を参照) を使用し、markersizeキーワード引数を適切に小さい値に設定します。例:

plot(x, y, 'ko', markersize=2)
savefig('foo.ps')

その'.'(ポイント) は、matplotlib のバグとして解釈される可能性のあるあまり良い結果を生成しませんが、「ポイント」はベクター グラフィック形式で何を意味するのでしょうか?

于 2009-03-12T12:58:58.190 に答える
10

','ポイントシェイプを試してみましたか?「ピクセル」(形状ではなく小さな点​​)を作成します。

オプションでも遊べmarkersizeます、この形で?

于 2009-08-08T09:57:43.330 に答える
2

まだ行っていない場合は、ラスタライズ エンジンで保存してみてください。PNG ファイルに保存して、修正されるかどうかを確認してください。ベクトル プロットが必要な場合は、PDF に保存し、外部ユーティリティで変換してみてください。また、Agg または PDF エンジンで保存し、外部で変換することによって解決された PS エンジンで以前に問題が発生したこともあります。

于 2009-02-13T03:32:39.850 に答える