pythonmatplotlibgeometryscatter-plotscatter

How to do a scatter plot with empty circles in Python?


In Python, with Matplotlib, how can a scatter plot with empty circles be plotted? The goal is to draw empty circles around some of the colored disks already plotted by scatter(), so as to highlight them, ideally without having to redraw the colored circles.

I tried facecolors=None, to no avail.


Solution

  • From the documentation for scatter:

    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
    

    Try the following:

    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()
    

    example image

    Note: For other types of plots see this post on the use of markeredgecolor and markerfacecolor.