最もマーケットに優しい州はどこ?
ファーマーズマーケットのデータを探索していると、州レベルに集計したらどんなパターンが見えるのか気になりました。州によってマーケットに優しいところとそうでないところがあるのでしょうか。これを調べるため、データを州ごとにグループ化し、マーケット数(log_markets)と州の人口(log_pop)を対数変換した値を計算します。
markets_and_pop = (markets
.groupby('state', as_index = False)
.agg({
'name': lambda d: log(len(d)),
'state_pop': lambda d: log(d.iloc[0]) })
.rename(columns = {
'name': 'log_markets',
'state_pop': 'log_pop' }))
可視化には、マーケット数と人口数の「通常の」関係性を把握するために回帰プロットを使い、興味深い外れ値を素早く見つけるためにテキスト付きの散布図を組み合わせることにしました。
この演習はコースの一部です
Pythonでデータ可視化を磨く
演習の手順
markets_and_popDataFrame の各行を反復処理してください。- 散布図の各点のそばにアノテーションを配置してください。
- アノテーションの文字サイズを
10pt に下げてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
g = sns.regplot(
"log_markets", "log_pop",
ci = False,
# Shrink scatter plot points
scatter_kws = {'s':2},
data = markets_and_pop)
# Iterate over the rows of the data
for _, row in markets_and_pop.____():
state, _, _, log_markets, log_pop = row
# Place annotation and reduce size for clarity
g.annotate(state, (____,____), ____ = ____)
plt.show()