J'ai une trame de données dont je veux faire un nuage de points.
la trame de données ressemble à:
year length Animation
0 1971 121 1
1 1939 71 1
2 1941 7 0
3 1996 70 1
4 1975 71 0
Je souhaite que les points de mon nuage de points soient d'une couleur différente en fonction de la valeur de la ligne Animation.
Donc animation = 1 = jaune
animation = 0 = noir
ou quelque chose de similaire
J'ai essayé de faire ce qui suit:
dfScat = df[['year','length', 'Animation']]
dfScat = dfScat.loc[dfScat.length < 200]
axScat = dfScat.plot(kind='scatter', x=0, y=1, alpha=1/15, c=2)
Il en résulte un curseur qui rend difficile de faire la différence.
Vous pouvez également affecter des couleurs discrètes aux points en passant un tableau à c = comme ceci:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
d = {"year" : (1971, 1939, 1941, 1996, 1975),
"length" : ( 121, 71, 7, 70, 71),
"Animation" : ( 1, 1, 0, 1, 0)}
df = pd.DataFrame(d)
print(df)
colors = np.where(df["Animation"]==1,'y','k')
df.plot.scatter(x="year",y="length",c=colors)
plt.show()
Cela donne:
Animation length year
0 1 121 1971
1 1 71 1939
2 0 7 1941
3 1 70 1996
4 0 71 1975