设置标题
如果我们要将数据呈现给第三方,另一个基本但关键的要点是使用标题,它和之前的轴标记非常相似:
???????ax[0].title.set_text(‘This title has to be very clear and explicative’)ax[1].title.set_text(‘And this title has to explain what’s different in this chart’
给图表重点元素做注释
通常情况下,仅仅在图表的左右两侧使用刻度本身并不是很清楚 。在图上标注值对于解释图表非常有用 。
假设现在我们使用 subplots,我们有几个图表,其中一个是位于 ax[0] 位置的 seaborn 的 barplot 。在这种情况下,在条形图中每个条上获取注释的代码要复杂一些,但很容易实现:
???????for p in ax[0].patches:ax[0].annotate(“%.2f” % p.get_height(), (p.get_x() + p.get_width() / 2., p.get_height()),ha=’center’, va=’center’, fontsize=12, color=’white’, xytext=(0, -10), textcoords=’offset points’
对于图表中的每个「patch」或条形图,直到「ha」参数获取条形图的位置、高度和宽度为止,以便将值注释放在正确的位置 。以类似的方式,我们还可以指定注释的对齐方式、字体大小和颜色,而「xytext」参数指示我们是否要在某个 x 或 y 方向移动注释 。在上面的例子中,我们将在 y 轴上向下移动注释文本 。
使用不同颜色区分标签
在某些情况下,在一段时间或一系列的值中,我们可能测量了不同种类的物体 。例如,假设我们测量 6 个月以来狗和猫的体重 。在实验结束时,我们想画出每只动物的体重,分别用蓝色和红色区分猫和狗 。为此,在大多数传统绘图中,我们可以使用参数「hue」为元素提供颜色列表 。
举个例子:
???????weight = [5,4,8,2,6,2] month = [‘febrero’,’enero’,’abril’,’junio’,’marzo’,’mayo’] animal_type = [‘dog’,’cat’,’cat’,’dog’,’dog’,’dog’] hue = [‘blue’,’red’,’red’,’blue’,’blue’,’blue’] sns.scatterplot(x=month, y=weight, hue=hue);

文章插图
改变散点图中点的大小
使用上面的相同示例,我们还可以使用从 1 到 5 的刻度表示图表中动物的大小 。将此额外指标添加到绘图中的一个好选择是修改散点图的大小,通过「size」参数将大小指定给新的附加向量,并使用「size」调整它们之间的关系:
???????size = [2,3,5,1,4,1]sns.scatterplot(x=month, y=weight, hue=hue, size=size, sizes= (50,300));

文章插图
顺便说一下,如果如上图所示,图例使绘图更难阅读,你可以将「legend」参数设置为 false 。
在数据中包含一行以显示阈值
在现实生活中的许多情况下,数据高于或低于某个阈值可能是问题提示信号或错误警告 。如果要在绘图中清楚地显示,可以使用以下命令添加一行:
ax[0].axvline(32,0,c='r')
加在哪里?
ax[0] 将是我们要在其中插入行的图表
32 将是绘制线的值
c = 'r' 表示图表将是红色的
如果我们使用的是 subplots,那么将 axvline 添加到相应的 axe 就很简单,如上面的示例所示 。但是,如果不使用 subplots,则应执行以下操作:
???????g=sns.scatterplot(x=month,y=weight,hue=hue,legend=false)g.axvline(2,c='r')plt.show()

文章插图
多Y轴绘图
这可能是最简单,但也是最有用的技巧之一 。
有时我们只需要在图表中添加更多信息,除了在绘图的右 y 轴上添加新的度量之外,没有其他方法可以绕过它:
ax2=ax[0].twinx()
现在可以添加任何要将「ax」参数指向「ax2」的图表
sns.lineplot(x=month, y=average_animal_weight, ax=ax2
请注意,这个例子再次假设你使用的是 subplots 。如果没有,你应该遵循与前一点相同的逻辑:
??????【10个数据可视化技巧,让你一看就懂】g = sns.scatterplot(x=month, y=weight, hue=hue, legend=False)g.axvline(2,c=’r’)ax2 = g.twinx()sns.lineplot(x=month, y=average_animal_weight, ax=ax2, c=’y’)plt.show()
推荐阅读
- C/C++连接MySql数据库使用总结
- 10个动作测身体好坏
- 大数据开发、运维、架构都是干什么的?薪资哪个高?
- Python数据结构List入门
- PHP如何像查询MySQL数据库一样查询数组内容
- 月饼在冰箱冷冻10个月没变味能吃吗 月饼放冰箱会影响口感吗
- 怎么使用Python攻击SQL数据库
- MySQL 数据库铁律
- 如何保证Redis和数据库双写一致性的问题?
- 数据库教程-SQL Server通配符与模式匹配
