J'ai créé un nuage de points en utilisant Seaborn:
import seaborn as sns
sns.set(style="ticks", color_codes=True)
g=sns.scatterplot(x="length", y="coverage", data=df, hue = 'Products', edgecolors=None, alpha = 0.7)
g.set(yscale="log")
plt.xlabel("Length(bp)")
plt.ylabel("Coverage")
plt.legend(loc = 'lower right')
plt.savefig('ATN_plot.png',dpi = 600)
Les données originales (partielles):
contig length coverage pathway Products
53 1230 2423 stigmatellin Yes
58 1195 885 curacin Yes
65 1161 598 jamaicamide Yes
68 1159 8001 jamaicamide Yes
79 1113 1423 curacin Yes
105 1042 1106 stigmatellin Yes
727 666 223 HSAF (heat stable antifungal factor) Yes
787 655 37 curacin Yes
791 654 13 stigmatellin Yes
798 652 49 stigmatellin Yes
844 642 5774 jamaicamide Yes
89 1090 13 No No
90 1089 10 No No
91 1086 26 No No
92 1080 16 No No
93 1079 10 No No
94 1079 13 No No
Et l'intrigue finale ressemble à ceci:
Je n'aime pas le bord blanc des taches. La partie inférieure gauche de l'image où la plupart des taches s'accumulent semble trop blanche. J'ai déjà inclus "edgecolors = None" dans mon code mais cela ne semble pas fonctionner. Quelqu'un sait-il comment supprimer la couleur du bord ou la changer en d'autres?
Merci beaucoup!
Remplacer edgecolors=None
avec linewidth=0
Quelque chose comme:
g=sns.scatterplot(x="length", y="coverage", data=df, hue = 'Products',
linewidth=0, alpha = 0.7)
Dans matplotlib, la plupart des arguments prennent None
comme dans "use the default". Alors qu'ici, vous ne voulez pas utiliser la valeur par défaut, mais plutôt pas edgecolor. Cela se fait via "none"
.
sns.scatterplot(..., edgecolor="none")
Vous pouvez changer la couleur d'accompagnement en passant des kwargs (arguments de mots clés)
kwargs = {'edgecolor':"r", # for Edge color
'linewidth':2.7, # line width of spot
'linestyle':'--', # line style of spot
}
sns.scatterplot(x = "tip", y = "total_bill", data = tips_df, hue = "sex",
size ="sex", sizes = (100, 300), palette = "nipy_spectral" ,**kwargs)
ou vous pouvez le passer directement en tant que paramètres, comme:
sns.scatterplot(x = "tip", y = "total_bill", data = tips_df, hue = "sex",
size ="sex", sizes = (100, 300), palette = "nipy_spectral",
edgecolor='r',
linewidth=2,
linestyle='--',)
Sortie >>>
J'espère, j'ai clarifié votre doute.