提交 ebcab261 编写于 作者: W wizardforcel

2021-01-01 16:20:09

上级 6beeb586
......@@ -637,7 +637,7 @@ In [106]: plt.title('Changes in log %s versus log %s' % ('m1', 'unemp'))
![图 9-24 seaborn 的回归/散点图](img/7178691-2133d20739478a80.png)
在探索式数据分析工作中,同时观察一组变量的散点图是很有意义的,这也被称为散点图矩阵(scatter plot matrix)。纯手工创建这样的图表很费工夫,所以 seaborn 提供了一个便捷的 pairplot 函数,它支持在对角线上放置每个变量的直方图或密度估计(见图 9-25):
在探索式数据分析工作中,同时观察一组变量的散点图是很有意义的,这也被称为散点图矩阵(scatter plot matrix)。纯手工创建这样的图表很费工夫,所以 seaborn 提供了一个便捷的`pairplot`函数,它支持在对角线上放置每个变量的直方图或密度估计(见图 9-25):
```python
In [107]: sns.pairplot(trans_data, diag_kind='kde', plot_kws={'alpha': 0.2})
......@@ -645,11 +645,11 @@ In [107]: sns.pairplot(trans_data, diag_kind='kde', plot_kws={'alpha': 0.2})
![图 9-25 statsmodels macro data 的散点图矩阵](img/7178691-20aa530a44e06f61.png)
你可能注意到了 plot_kws 参数。它可以让我们传递配置选项到非对角线元素上的图形使用。对于更详细的配置选项,可以查阅 seaborn.pairplot 文档字符串。
你可能注意到了`plot_kws`参数。它可以让我们传递配置选项到非对角线元素上的图形使用。对于更详细的配置选项,可以查阅`seaborn.pairplot`文档字符串。
## 分面网格(facet grid)和类型数据
要是数据集有额外的分组维度呢?有多个分类变量的数据可视化的一种方法是使用小面网格。seaborn 有一个有用的内置函数 factorplot,可以简化制作多种分面图(见图 9-26):
要是数据集有额外的分组维度呢?有多个分类变量的数据可视化的一种方法是使用小面网格。seaborn 有一个有用的内置函数`factorplot`,可以简化制作多种分面图(见图 9-26):
```python
In [108]: sns.factorplot(x='day', y='tip_pct', hue='time', col='smoker',
.....: kind='bar', data=tips[tips.tip_pct < 1])
......@@ -665,21 +665,21 @@ In [109]: sns.factorplot(x='day', y='tip_pct', row='time',
.....: kind='bar', data=tips[tips.tip_pct < 1])
```
![图 9-27 按天的 tip_pct,通过 time/smoker 分面](img/7178691-4e52192441c609f7.png)
![图 9-27 按天的`tip_pct`,通过`time`/`smoker`分面](img/7178691-4e52192441c609f7.png)
factorplot 支持其它的绘图类型,你可能会用到。例如,盒图(它可以显示中位数,四分位数,和异常值)就是一个有用的可视化类型(见图 9-28):
`factorplot`支持其它的绘图类型,你可能会用到。例如,盒图(它可以显示中位数,四分位数,和异常值)就是一个有用的可视化类型(见图 9-28):
```python
In [110]: sns.factorplot(x='tip_pct', y='day', kind='box',
.....: data=tips[tips.tip_pct < 0.5])
```
![图 9-28 按天的 tip_pct 的盒图](img/7178691-356fb27a7c658920.png)
![图 9-28 按天的`tip_pct`的盒图](img/7178691-356fb27a7c658920.png)
使用更通用的 seaborn.FacetGrid 类,你可以创建自己的分面网格。请查阅 seaborn 的文档(https://seaborn.pydata.org/)
使用更通用的`seaborn.FacetGrid`类,你可以创建自己的分面网格。请查阅 [seaborn 的文档](https://seaborn.pydata.org/)
# 9.3 其它的 Python 可视化工具
与其它开源库类似,Python 创建图形的方式非常多(根本罗列不完)。自从 2010 年,许多开发工作都集中在创建交互式图形以便在 Web 上发布。利用工具如 Boken(https://bokeh.pydata.org/en/latest/)和 Plotly(https://github.com/plotly/plotly.py),现在可以创建动态交互图形,用于网页浏览器。
与其它开源库类似,Python 创建图形的方式非常多(根本罗列不完)。自从 2010 年,许多开发工作都集中在创建交互式图形以便在 Web 上发布。利用工具如 [Boken](https://bokeh.pydata.org/en/latest/)[Plotly](https://github.com/plotly/plotly.py),现在可以创建动态交互图形,用于网页浏览器。
对于创建用于打印或网页的静态图形,我建议默认使用 matplotlib 和附加的库,比如 pandas 和 seaborn。对于其它数据可视化要求,学习其它的可用工具可能是有用的。我鼓励你探索绘图的生态系统,因为它将持续发展。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册