背景をすっきり整える
州ごとのファーマーズマーケットで販売されている品目を探索したところ、いくつかの州が目に留まりました。ノースダコタ州とニューメキシコ州は、特定の品目を販売するマーケットの割合が常に下位に位置していました。一方、バーモント州は常に上位でした。州ごとの品目販売の全体的な傾向を示しつつ、特に注目した州を強調したいと考えています。
各州でその品目を販売しているマーケットの割合に対して、販売されている品目を散布図で可視化します。注目した州を強調するために、各州の点同士を線で結びます。図をシンプルで見やすくするため、背景は最小限にし、位置合わせのためのグリッドのみを残します。
この演習はコースの一部です
Pythonでデータ可視化を磨く
演習の手順
- 背景を白にし、グリッド線を表示してください。
- 散布図と折れ線の x 軸と y 軸には、それぞれ
'good'(販売される品目)と'prop selling'(販売する割合)をエンコードしてください。 - プロットの枠線をすべて取り除いてください。デフォルトでは、
sns.despine()は上部と右側のスパインしか削除しないことを忘れないでください!
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set background to white with grid
sns.set_style('____')
plt.scatter('____','____', marker = '_', alpha = 0.7, data = goods_by_state)
# Draw lines across goods for highlighted states
highlighted = goods_by_state.query("state in ['New Mexico','North Dakota','Vermont']")
sns.lineplot('____','____', 'state', data = highlighted, legend = False)
# Draw state name at end of lines
last_rows = highlighted.groupby('state', as_index = False).agg('first')
for _,row in last_rows.iterrows():
plt.annotate(row['state'], (row['good'], row['prop selling']),
ha = 'right', xytext = (5,0), textcoords = 'offset pixels')
# Remove all borders
sns.____(____ = ____, ____ = ____)
plt.show()