Pythonでは、Matplotlibを使用して、空の円を含む散布図をどのようにプロットできますか?目標は、によってプロットされた色付きのディスクのいくつかの周りに空の円scatter()
を描画して、それらを強調表示することです。理想的には、色付きの円を再描画する必要はありません。
私はfacecolors=None
無駄にしようとしました。
Pythonでは、Matplotlibを使用して、空の円を含む散布図をどのようにプロットできますか?目標は、によってプロットされた色付きのディスクのいくつかの周りに空の円scatter()
を描画して、それらを強調表示することです。理想的には、色付きの円を再描画する必要はありません。
私はfacecolors=None
無駄にしようとしました。
散布図のドキュメントから:
Optional kwargs control the Collection properties; in particular:
edgecolors:
The string ‘none’ to plot faces with no outlines
facecolors:
The string ‘none’ to plot unfilled outlines
次のことを試してください。
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(60)
y = np.random.randn(60)
plt.scatter(x, y, s=80, facecolors='none', edgecolors='r')
plt.show()
注:他のタイプのプロットについては、との使用に関するこの投稿を参照してください。markeredgecolor
markerfacecolor
これらは機能しますか?
plt.scatter(np.random.randn(100), np.random.randn(100), facecolors='none')
または plot() を使用して
plt.plot(np.random.randn(100), np.random.randn(100), 'o', mfc='none')
別の方法は次のとおりです。これにより、現在の軸、プロット、画像などに円が追加されます。
from matplotlib.patches import Circle # $matplotlib/patches.py
def circle( xy, radius, color="lightsteelblue", facecolor="none", alpha=1, ax=None ):
""" add a circle to ax= or current axes
"""
# from .../pylab_examples/ellipse_demo.py
e = Circle( xy=xy, radius=radius )
if ax is None:
ax = pl.gca() # ax = subplot( 1,1,1 )
ax.add_artist(e)
e.set_clip_box(ax.bbox)
e.set_edgecolor( color )
e.set_facecolor( facecolor ) # "none" not None
e.set_alpha( alpha )
(写真の円は、楕円に押しつぶされimshow aspect="auto"
ます)。
したがって、特定の基準に適合するいくつかのポイントを強調したいと思います。Prelude のコマンドを使用して、強調表示されたポイントの 2 番目の散布図を空の円で作成し、最初の呼び出しですべてのポイントをプロットすることができます。大きな空の円が小さな塗りつぶされた円を囲むように、s パラメータが十分に小さいことを確認してください。
もう 1 つのオプションは、散布図を使用せず、円/楕円コマンドを使用してパッチを個別に描画することです。これらは matplotlib.patches にあります。円、長方形などを描画する方法のサンプル コードを次に示します。