J'essaie de faire un nuage de points de certaines données PCA. Je fais du code assez typique:
plt.plot(pca[:,0], pca[:,1], '.',ms=3, markerfacecolor = self.colors[k],
markeredgecolor = 'none')
Je veux qu'il montre juste la couleur du visage du marqueur sans contour. Le problème est que les marqueurs disparaissent complètement lorsque markeredgecolor = 'none'. Lorsque je mets markerfacecolor = 'none' ou une couleur et que je supprime markeredgecolor, cela fonctionne comme prévu.
Je viens de mettre à jour matplotlib, numpy, etc. vers les dernières versions, fonctionnant sur Python 2.7.
Merci de votre aide.
Je pense que c'est un bug qui a été corrigé il y a quelques mois: https://github.com/matplotlib/matplotlib/pull/598
Quelle que soit la taille de vos marqueurs ou si vous utilisez marker='o'
au lieu de '.'
, ils seront invisibles si vous utilisez markeredgecolor='none'
.
Comme solution de contournement, vous pouvez simplement définir les couleurs de bord sur les mêmes que les couleurs de visage.
Dans matplotlib 1.1
>> plt.plot(pca[:,0], pca[:,1], '.', ms=3, markerfacecolor=self.colors[k],
... markeredgecolor=None)
fonctionne (notez le None
au lieu de 'aucun' pour markeredgecolor).
Réglage markeredgewidth=0.0
ou markeredgecolor=self.colors[k]
(comme l'a suggéré Joe Kington) devrait également fonctionner.
Essaye ça:
x = np.array(np.random.Rand(10))
y = np.array(np.random.Rand(10))
c = np.arange(len(x))
plt.scatter(x,y, c=c, s=500, cmap = plt.cm.Paired, alpha = 0.5,linewidths=0)
Ou, c'est aussi une bonne option:
plt.scatter(x,y, c=c, s=500, cmap = plt.cm.Paired, alpha = 0.5,edgecolor='face')