作者|Rashida Nasrin Sucky 编译|VK 来源|Towards Data Science
我们使用python的pandas库主要用于数据分析中的数据操作,但我们也可以使用Pandas进行数据可视化。你甚至不需要为此导入Matplotlib库。
Pandas本身可以在后端使用Matplotlib并为你呈现可视化效果。它使得使用数据帧列绘制图变得非常容易。Pandas使用比Matplotlib更高级别的API。因此,它可以用更少的代码行来绘制绘图。
我将从使用随机数据从基本的绘图开始,然后转到更高级的带有真实数据集的绘图。
在本教程中,我将使用Jupyter Notebook环境。如果你没有安装,你可以简单地使用谷歌Colab Notebook。你甚至不需要在上面安装Pandas。它已经为我们安装好了。
如果你想安装一个Jupyter Notebook,那也是个好主意。
对于数据科学家来说,这是一个很好的软件包,而且是免费的。
安装pandas使用:
pip install pandas
或者在你的anaconda上
conda install pandas
这样就准备好了
pandas可视化
我们将从最基本的开始。
直线图
首先导入pandas。然后,让我们用pandas做一个基本的系列,画一个直线图。
import pandas as pd
a = pd.Series([40, 34, 30, 22, 28, 17, 19, 20, 13, 9, 15, 10, 7, 3])
a.plot()
最基本最简单的图准备好了!看,这是多么容易。我们可以改进一下。
我将补充:
更改一个图形大小,使图表更大,
更改的默认蓝色
显示标题
更改轴上这些数字的默认字体大小
a.plot(figsize=(8, 6), color='green', title = 'Line Plot', fontsize=12)
在本教程中,我们将学习更多的样式技巧。
面积图
我会用相同的数据a在这里画一个面积图,
我可以使用.plot方法并传递一个参数类型来指定我想要的绘图类型,例如:
a.plot(kind='area')
或者我可以这样写
a.plot.area()
我上面提到的两种方法都将创建此图:
面积图更有意义,而且当其中有多个变量时看起来也更好。所以,我将制作更多Series,制作一个数据框,并从中绘制一个面积图。
b = pd.Series([45, 22, 12, 9, 20, 34, 28, 19, 26, 38, 41, 24, 14, 32])
c = pd.Series([25, 38, 33, 38, 23, 12, 30, 37, 34, 22, 16, 24, 12, 9])
d = pd.DataFrame({'a':a, 'b': b, 'c': c})
让我们把这个数据框“d”画成面积图,
d.plot.area(figsize=(8, 6), title='Area Plot')
你不必接受这些默认颜色。让我们把这些颜色换一下,再加些样式。
d.plot.area(alpha=0.4, color=['coral', 'purple', 'lightgreen'],figsize=(8, 6), title='Area Plot', fontsize=12)
“alpha”参数为绘图添加了一些半透明的外观。
当我们有重叠的面积图、直方图或密集的散点图时,它似乎非常有用。
plot()可以执行11种类型的绘图:
- line
- area
- bar
- barh
- pie
- box
- hexbin
- hist
- kde
- density
- scatter
我想展示所有这些不同图的用法。为此,我将使用疾病控制和预防中心的NHANES数据集。我下载了这个数据集,并