Issue
I am following this tutorial.
I would like to use Matplotlib to create a scatter plot with points that are colored inside, but have a black border, such as this plot:
However, when I copy the code exactly, I get this plot instead.
Here is the code:
colors = ['black', 'blue', 'purple', 'yellow', 'white', 'red', 'lime', 'cyan', 'orange', 'gray']
for i in range(len(colors)):
x = reduced_data_rpca[:, 0][digits.target == i]
y = reduced_data_rpca[:, 1][digits.target == i]
plt.scatter(x, y, c=colors[i])
plt.legend(digits.target_names, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.title("PCA Scatter Plot")
plt.show()
I tried adjusting the style, but that didn't help.
Solution
When you use scatter plot, you set a color for both face and edge. In the official documentation you can find an additional parameter, edgecolors, which allows setting the edge color.
edgecolors : color or sequence of color, optional, default: None
If None, defaults to ‘face’
If ‘face’, the edge color will always be the same as the face color.
If it is ‘none’, the patch boundary will not be drawn.
For non-filled markers, the edgecolors kwarg is ignored and forced to ‘face’ internally.
So, after all, you need only plt.scatter(x, y, c=colors[i],edgecolors='black')
Answered By - rth
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.