2017-07-21 8 views
2

ファクシミリなし異なるエッジグレーターとの散布図をプロットしたいと思います。言い換えれば、カラフルな円。matplotlibで異なるedgecolorを持つ散布図を作成するにはどうすればよいですか?

私はmatplotlibギャラリーで簡単に解決策を見つけることができたと思っていましたが、驚くほど私はできませんでした。パラメータ "edgecolors"は配列を値として受け入れません。また、パラメータ 'c'を操作すると、エッジカラーやフェーカラーでは効果がありません。ここで

は私が解決策になるだろうと思ったのリンクです: https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.scatter.html enter image description here

ページの最後にデモ映像は、カラフルなedgecolorsを持っているようです!次に、スクリプトをダウンロードして実行します。 enter image description here

エッジがまだ黒です。

私は今、私のプロットを他の方法でやっています。 (これは大きな問題ではないので、これは興味深い問題です)。デモがどのようにカラフルなエッジを得たのだろうか。その他など

+0

のようなものを作る必要があり、私はサンプルスクリプトを実行し、ドキュメントと同じ結果を得た、私はあなたが何であるかのバージョン、matplotlibの2.0.0とPython 3.5.1を使用していますか? –

+0

最も簡単な方法は、実際にはmatplotlibをバージョン2.0にアップデートすることです。ここでは、スキャッタedgecolorは自動的に 'c'パラメータで設定された色を使用します。 – ImportanceOfBeingErnest

答えて

0

デモスクリプトはカラフルなエッジを持っている方法は、matplotlibの2.0が自動的に提供色引数に散布図の点のエッジの色を設定することであると述べています。

、しかし、あなたは(私はそれをお勧めしますが)2.0をMPLために更新せずにデモスクリプトの結果を再作成したい場合にのみ

plt.scatter(x, y, s=area, c=colors, alpha=0.5, edgecolors=colors) 
を次のように散布ラインに追加キーワードパラメータを追加する必要があります

そして完全性のために、あなたが元々持っていたカラフルな円のアイデアを実装することができます。あなただけの彼らがデモスクリプトで「C」引数にやっているようあなたがedgecolorsの色を定義するために、単一のfloatを使用することはできません、さらにすなわち

plt.scatter(x, y, s=area, c='w', alpha=0.5, edgecolors=colors) 

、白に内部の色を変更する必要がありますすべての指定された色である長さNの配列を指定する必要があります。 【「R」、「G」、「B」]、またはプロットでRGBまたはRGBA色をしたい場合Pに応じて3または4のいずれかである

colors = np.random.random((N, p)) 

と色の定義に取って代わります。これは、次のプロット

Output from scatter_demo.py with no face colour and colourful edges

関連する問題