箭头注释
假设您是加利福尼亚州 Long Beach 的城市规划师。Long Beach 位于太平洋沿岸,每年除夕都会有大型烟花表演。您想研究这项活动是否会对城市的空气质量产生负面影响。为此,您将查看新年当天的 CO 和 NO2 水平。不过,结果显示新年当天在右侧图中并非离群点,而是位于较为密集的区域。
为了引导读者注意该点,您将使用带箭头的注释指向新年当天的数值。这样可以在图中较不拥挤的区域展示文字,同时说明观众正在查看的内容。
本练习是课程的一部分
用 Python 提升数据可视化
练习说明
- 使用 pandas 的
.query()方法,从jan_pollution中提取 Long Beach 市 2012 年新年当天对应的行。 - 使用
lb_newyearsDataFrame 中的CO和NO2列值设置箭头的终点(xy)。 - 使用参数
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()