首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中绘制带有空圆圈的散点图?

如何在Python中绘制带有空圆圈的散点图?
EN

Stack Overflow用户
提问于 2010-11-10 18:34:09
回答 5查看 301.8K关注 0票数 207

在Python中,使用Matplotlib,如何绘制带有空圆的散点图?目标是在scatter()已经绘制的一些彩色圆盘周围绘制空圆圈,以便突出显示它们,理想情况下不必重新绘制彩色圆圈。

我尝试了facecolors=None,但没有用。

EN

回答 5

Stack Overflow用户

发布于 2010-11-10 23:52:39

这些能行得通吗?

代码语言:javascript
复制
plt.scatter(np.random.randn(100), np.random.randn(100), facecolors='none')

或使用plot()

代码语言:javascript
复制
plt.plot(np.random.randn(100), np.random.randn(100), 'o', mfc='none')

票数 81
EN

Stack Overflow用户

发布于 2010-11-23 20:20:07

这是另一种方式:这会向当前轴、图或图像或任何其他轴添加一个圆:

代码语言:javascript
复制
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" )。

票数 15
EN

Stack Overflow用户

发布于 2017-03-22 10:47:23

在matplotlib2.0中,有一个名为fillstyle的参数,它可以更好地控制标记的填充方式。在我的例子中,我将它与errorbar一起使用,但它适用于一般http://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.errorbar.html中的标记

fillstyle接受下列值:‘full’|‘left’|‘right’|‘bottom’|‘top’|‘none’

在使用fillstyle时,有两件重要的事情需要牢记:

1)如果mfc设置为任何类型的值,它将优先,因此,如果您确实设置了填充样式为'none‘,它将不会生效。因此应避免将mfc与填充样式结合使用。

2)您可能希望控制标记边缘宽度(使用markeredgewidthmew),因为如果标记相对较小而边缘宽度较厚,则标记看起来像填充的,即使它们不是填充的。

以下是使用errorbar的示例:

代码语言:javascript
复制
myplot.errorbar(x=myXval, y=myYval, yerr=myYerrVal, fmt='o', fillstyle='none', ecolor='blue',  mec='blue')
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4143502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档