矢印つきの注釈
あなたはカリフォルニア州ロングビーチの都市計画担当者だと想像してください。ロングビーチは太平洋に面し、毎年大晦日に大規模な花火大会があります。このイベントが市の大気質に悪影響を与えていないかを確認したいと考えています。そのために、元日の CO と NO2 の値を見ていきます。ただし、右のプロットでは元日は外れ値ではなく、人が密集している領域の1つに位置しています。
読者をその点に導くために、元日の値を指す矢印つきの注釈を使います。これにより、プロットの混み合っていない領域にテキストを配置しつつ、閲覧者が何を見ているのかを説明するわかりやすい注釈になります。
この演習はコースの一部です
Pythonでデータ可視化を磨く
演習の手順
- pandas の
.query()メソッドを使って、ロングビーチ市の 2012 年元日に対応する行をjan_pollutionから取得してください。 - 矢印の終点(
xy)は、lb_newyearsDataFrame のCO列とNO2列の値を使って設定します。 - 引数
xytextを使い、注釈のテキストを表示の左下、x =2、y =15の位置に配置します。 - 矢印を
'shrink'で0.03にして、注目点を隠さないようにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Query and filter to New Years in Long Beach
jan_pollution = pollution.query("(month == 1) & (year == 2012)")
lb_newyears = jan_pollution.query("(____ == ____) & (____ == '____')")
sns.scatterplot(x = 'CO', y = 'NO2',
data = jan_pollution)
# Point arrow to lb_newyears & place text in lower left
plt.annotate('Long Beach New Years',
xy = (____, ____),
xytext = (____, _____),
# Shrink the arrow to avoid occlusion
arrowprops = {'facecolor':'gray', 'width': 3, '____': ____},
backgroundcolor = 'white')
plt.show()