凡例としてプロットを使う
ファーマーズマーケットのデータで興味深い切り口の一つは、各州の「マーケットにやさしさ(market friendliness)」、特に外れ値を探ることです。これを眺める一つの方法は、州ごとの人口に対するファーマーズマーケットの数の比率を見ることです。比率だけを直接見ることもできますが、比率だけでは州の人口やマーケット数といった生の情報を捨ててしまいます。小さな州よりも、同じ高い比率でも大きな州のほうがより興味深いかもしれません。
比率と生の数値の両方を見せるには、2 つのプロットを描きます。1 つは比率のバー、もう 1 つはマーケット数と人口の散布図です。情報量の多い可視化をすっきり見せるために、バーの色と散布図の点の色を合わせ、バーのプロット自体を凡例の役割として使い、注目すべき州を強調します。
この演習はコースの一部です
Pythonでデータ可視化を磨く
演習の手順
plt.subplots()を使って左右に 2 つのプロットを並べて配置します。- 棒グラフと散布図のどちらにも、色に
is_selected列をマッピングします。 - 棒グラフでは
dodgeを無効にし、バーが全高になるようにします。 - 両方のプロットで凡例を削除します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set up two side-by-side plots
f, (ax1, ax2) = plt.subplots(____, ____, figsize = (15, 15))
# Map the column for selected states to the bar color
sns.barplot('people_per_market', 'state', hue = '____',
# Disable dodge so bars are full size
dodge = ____,
data = markets_by_state, ax = ax1)
# Map selected states to point color
sns.scatterplot('log_pop', 'log_markets', hue = '____',
data = markets_by_state, ax = ax2, s = 100)
# Remove the legend for both plots
ax1.____()
ax2.____()
plt.show()