州ごとの販売品目の人気
Farmer's market のデータセットには、28種類の品目それぞれについて、その市場で販売されているかどうかを示す列があります。各州の市場で特定の品目に出会える「可能性」について、何か面白い傾向がないか知りたいと考えました。そこで、データを次の3列に集約しました。
state- 州名good- 関心のある品目prop_selling- その州で「その」品目を販売している市場の割合
まずはパターンが見えてくるか手早く確かめるため、興味深いと感じた品目に絞り、シンプルなテキスト散布図を作ることにしました。x軸に品目、y軸にその品目を販売している州内の市場の割合を置きます。
この演習はコースの一部です
Pythonでデータ可視化を磨く
演習の手順
to_plotに列挙された品目に合致するように、goods_by_stateをフィルタします。散布図の点を表示しないよう、サイズを空(一定のサイズ)に設定します。
- なお、
sns.scatterplot()では、sizeは列の値をサイズスケールにマッピングするために使われ、sは全ての点に同じサイズを設定するために使われます。
- なお、
テキストは中央揃えにして、品目の x 軸上の位置にちょうど重なるように配置します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Subset goods to interesting ones
to_plot = ['Cheese','Maple','Fruits','Grains','Seafood','Plants','Vegetables']
goods_by_state_small = goods_by_state.____("good in "+str(to_plot))
g = sns.scatterplot('good','prop_selling', data = goods_by_state_small,
# Hide scatter points by shrinking to nothing
____ = ____)
for _,row in goods_by_state_small.iterrows():
g.annotate(row['state'], (row['good'], row['prop_selling']),
# Center annotation on axis
ha = '____',
size = 10)
plt.show()