2016-12-12 29 views
1

matplotlibのプロット破線の円

import matplotlib.pyplot as plt 
import numpy as np 
#http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter 
x = np.random.randn(60) 
y = np.random.randn(60) 
x2 = np.random.randn(60) 
y2 = np.random.randn(60) 

plt.plot(x, y, marker='o', markeredgecolor='r', linestyle='none', markerfacecolor='none') 
plt.plot(x2, y2, marker='o', markeredgecolor='r', linestyle='none', markerfacecolor='none') 
plt.show() 

私は、X2および破線(あるいは点線)の円としてプロットすることy2のためにしたいと思います。私はplt.scatterの使用を避けています。私のスクリプトの残りの部分はplt.plotを使う方がはるかに優れているからです。 私が探しているもの: enter image description here

ありがとうございます!

FYI: 私が作成した実際のグラフは次のとおりです。私は今、異なるデータ(将来のデータ)を表すために今は六角形を使用しました。

enter image description here

カスタム伝説と私はplt.scatterを克服することができなかった複雑さのレイヤーを追加パンダのデータフレーム内の行のグループの上にプロットします。

+1

そのためには、マーカーとして['Path'](http://matplotlib.org/api/path_api.html#path)インスタンスを渡す必要があります。私は破線の円を描く方法を見つけませんでした。たぶん可能ではないかもしれません、 'scatter'はマーカーエッジの' PathCollection'の追加プロパティーを使用します。パフォーマンスが問題であるようにたくさんのサークルをプロットしたい場合は、エッジを破線で区切っていくつかを区別する最善の方法ではないと私は言います。色、大きさ、形などがはるかに良くなります。 – Goyo

+0

スキャッターを使用することが大きな問題である理由についてコメントできますか? – ImportanceOfBeingErnest

+0

私は、データフレームのさまざまな行から点をプロットするためのリストを繰り返しています。各行のデータは、色のリストに基づいて色付けされます(ただし、すぐにカラーマップに変更されます)。その後、私はカスタム凡例を作成します。多くの依存関係があり、plt.scatterで動作するかどうかはわかりません。私の例の更新された質問を参照してください。 –

答えて

2

あなたはmarkerfacecolorが同様の色に設定されていること、mathtext functionality

plt.plot(x, y, marker=ur'$\u25CC$', markerfacecolor='r', 
       markeredgecolor='r', markersize=30, linestyle='none',) 

注を用いて(すべてのシンボルhereとPDF)STIXフォントから点線円(ur'$\u25CC$')を使用することができます。

欠点は、閉じた円と区別するために一定のサイズが必要なことです。

+0

うわー!!!!!!!!!!!! –

+0

'marker = u '$ \ u25CC $''は私のために働いた – NRH

関連する問題