matplotlib로 산점도를 그리는 샘플

예로서 「남녀 그룹별・신장・체중별・독서량」의 산포도를 그립니다.



scatter 는 특정 집단의 그룹별, XY별 크기 그래프를 그리는 이미지입니다.
,

출처


import matplotlib.pyplot as plt
import pandas as pd

#サンプルデータ
dt={"x身長"       :[ 170,170,150,150,140,140,165,165,155,155] ,
      "y体重"     :[  55, 51, 60, 66, 80, 65, 77, 67, 58, 57] ,
      "s読書量" :[ 700, 67, 80, 30, 55, 34, 45, 10,930,929] ,
       "c性別"    :[   1,  2,  1,  2,  1,  2,  1,  2,  1,  2] 
    }
df=pd.DataFrame(dt)

#描画
fig, ax = plt.subplots()
scatter = ax.scatter(df['x身長'], df['y体重'], c=df['c性別'], s=df['s読書量'], alpha=0.5 )

#タイトル等 
ax.set_xlabel("x身長" , fontsize=15, fontname="MS Gothic")
ax.set_ylabel("y体重" , fontsize=15, fontname="MS Gothic")
ax.set_title('身長 体重 性別別 読書量の分布' , fontname="MS Gothic")

#男女ラベル
legend1=ax.legend(scatter.legend_elements()[0], ["男","女"]   ,  loc="lower left", prop={"family":"MS Gothic"}   ) 
legend1.set_title("c性別"   ,  prop={"family":"MS Gothic"} )
ax.add_artist(legend1)

#読書量ラベル
handles, labels = scatter.legend_elements(prop="sizes",  num=3 , alpha=0.6)
legend2 = ax.legend(handles, labels, loc="upper right",  prop={"family":"MS Gothic"} )
legend2.set_title("s読書量"   ,  prop={"family":"MS Gothic"} )

ax.grid(True)
fig.tight_layout()

plt.show()

결과





참고



Scatter Demo2
Scatter plot
Scatter plots with a legend
matplotlib.pyplot.scatter
Matplotlib에서 쉽게 일본어를 표시하는 방법 (Windows)
범례 안에 일본어 타이틀을 표시하는 【matplotlib】

좋은 웹페이지 즐겨찾기