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.

8/1/2018 3:21:14 PM

Accepted Answer

From the documentation for scatter:

Optional kwargs control the Collection properties; in particular:

        The string ‘none’ to plot faces with no outlines
        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')

example image

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

5/23/2017 12:10:41 PM

Would these work?

plt.scatter(np.random.randn(100), np.random.randn(100), facecolors='none')

example image

or using plot()

plt.plot(np.random.randn(100), np.random.randn(100), 'o', mfc='none')

example image

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow