前提・実現したいこと
2020年と2065年の人口データがあり,それぞれ1~4のグループに分かれています.
2020年と2065年をそれぞれx軸,y軸にし,
クラスごとにプロット色分けしたいのですが,
エラーが出てしまいます.
CODE P2020 P2065 class
101 100 80 1
102 105 100 1
103 200 121 3
104 220 150 4
105 50 20 2
・
・
発生している問題・エラーメッセージ
File "<ipython-input-174-7affd5304f75>", line 3
plt.scatter(df.loc[df.class == f ,'P2020'], df.loc[df.class == f ,'P2065'], c=colors[f], label=f)
^
SyntaxError: invalid syntax
該当のソースコード
import numpy as np import pandas as pd import seaborn as sns from matplotlib.colors import ListedColormap plt.style.use('ggplot') df = pd.read_csv('population.csv',index_col='CODE') colors = {'1':'orange','2':'red','3':'blue','4':'yellow'} for f in df['class'].unique(): plt.scatter(df.loc[df.class == f ,'P2020'], df.loc[df.class == f ,'P2065'], c=colors[f], label=f) plt.legend() plt.show()
試したこと
colors = ['red','blue','yellow','pink']
cmap = ListedColormap(colors)
fig, ax = plt.subplots()
ax.set_title("Graph", fontsize=10) # タイトル
ax.set_xlabel("X axis", fontsize=10) # x軸ラベル
ax.set_ylabel("Y axis", fontsize=10) # y軸ラベル
ax.grid() # 目盛線の表示
ax.tick_params(labelsize=10) # 目盛線のラベルサイズ
sns.scatterplot(x="P2065", y="P2065", hue="class", data=df,ax=ax,cmap=cmap)
plt.legend()
plt.show()
これだと色が指定できません...
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/13 05:13
2021/01/13 06:58
2021/01/13 10:46
2021/01/13 16:21