Reputation: 864
I am plotting many scatter plots together, e.g.:
import matplotlib.pyplot as plt
import numpy as np
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y, c='blue')
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y, c='green')
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y, c='goldenrod')
plt.show()
I am doing this for >10 scatter plots and I would like to choose colors from a qualitative colormap to get color balance & separation, e.g.:
What is the best way to do this?
Upvotes: 6
Views: 21060
Reputation: 40747
I find it pretty neat to use an iterator to be able to select the next color in the list:
import matplotlib.pyplot as plt
import numpy as np
colors = iter([plt.cm.tab20(i) for i in range(20)])
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y, c=[next(colors)])
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y, c=[next(colors)])
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y, c=[next(colors)])
plt.show()
Upvotes: 17