web-dev-qa-db-ja.com

Python値に応じて異なる色を散布図

散布図を作成したいデータフレームがあります。

データフレームは次のようになります。

       year  length  Animation
0      1971     121       1
1      1939      71       1
2      1941       7       0
3      1996      70       1
4      1975      71       0

散布図のポイントを、アニメーション行の値に応じて異なる色にする必要があります。
だからアニメーション= 1 =黄色
アニメーション= 0 =黒
または似たようなもの

私は次のことを試しました:

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)

これにより、違いがわかりにくくなるスライダーが作成されます。 enter image description here

7
Rainoa

cscatterパラメーターを使用します

df.plot.scatter('year', 'length', c='Animation', colormap='jet')

enter image description here

5
piRSquared

次のように配列をc =に渡すことで、点に個別の色を割り当てることもできます。

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()

これは与える:

   Animation  length  year
0          1     121  1971
1          1      71  1939
2          0       7  1941
3          1      70  1996
4          0      71  1975

enter image description here

8
Arjaan Buijk