当前位置: 首页 > 科技观察

Python数据可视化,seaborn如何制作非常规图表

时间:2023-03-11 22:25:09 科技观察

前言上一节(Python可视化,matplotlib最佳入门实践)我们只是用matplotlib制作了如下图表:小麦年产量直方图用不同颜色标示最小值和最大值价值列然而,就制作标准图表而言,我们还有许多其他选择。最常见的是使用seaborn,它是一个基于matplotlib的包装器。本节我们将看看如何使用seaborn生成标准图表,然后结合matplotlib制作自定义效果。特别是在多系列的情况下,会有一些技巧。本文的目标图表是这样的:2系列。找到每个系列的最小和最大列,并用不同的颜色标记它们。这篇文章需要的库如下:数据长这样:上一节你做的如下:设置x轴标签的旋转角度,设置指定直方图的列Color简单的把这些东西包起来intofunctions:使用seaborn的代码其实和上一节直接使用matplotlib差不多:seaborn好像没什么特别的!这是因为我们只有一个series(上图只涉及2个维度:wheat和Year)multi-series稍微修改一下数据,Row3,4,5:复制一份数据,wheatyield随机生成Row7,8:新增一列“类型”,将数据分为2类:“原始”和“修改”第10行:合并为一条数据线12:避免数据太多,图表不利于阅读,我只保留1750以后的数据,现在数据是这样的:每年有2行记录,可以区分字段“type”他们用seaborn很方便的做多维数据映射:第1行:hue是类别映射,通常如果有一列数据是文本,就可以映射到它。这里,数据中的“type”字段映射图是这样的:很明显,没有标注最大值的列,而且还提示执行出错。如果我们查看图表的容器,我们可以看到关键:原来seaborn列分为2组。这是很合理的,但是数据范围索引是在整个数据总共27行中查找的。显然,我们需要2组范围索引:语义非常清晰直接,但是如何从图表容器中准确找到所需的BarContainer:第7行和第12行:其中的0和1都是猜测。原来seaborn在生成这些容器的时候,会把对应的数据值写入到容器的label属性中(也就是我们数据的“type”字段):注意不能使用key索引的方式获取,这样如写:axcontainers['modify'],会报错。一切准备就绪,定义如下函数:现在调用变得很简单:图表长这样:我会继续写更多非常规的需求图表,敬请期待!