使用pandas与seaborn等库会使我们工作效率大大提高。
在pandas中,我们有多列数据,还有行和列标签。
pandas自身就有内置的方法,用于简化从DataFrame和Series绘制图形。
另一个库seaborn(https://seaborn.pydata.org/),由Michael Waskom创建的静态图形库。Seaborn简化了许多常见可视类型的创建。
seaborn会修改matplotlib默认的颜色方案和绘图类型,以提高可读性和美观度。即使你不使用seaborn API,你可能也会引入seaborn,作为提高美观度和绘制常见matplotlib图形的简化方法
安装及导入pandas与seaborn库
打开cmd,输入pip install pandas pip install seaborn
输入pip list, 显示如下图,即为安装成功
引入pandas与seaborn库
import pandas as pd
Series和DataFrame都有一个用于生成各类图表的plot方法。默认情况下,它们所生成的是线型图
DataFrame的plot方法会在一个subplot中为各列绘制一条线,并自动创建图例,示例如下:
df = pd.DataFrame(np.random.randn(10, 4).cumsum(0),
columns=['A', 'B', 'C', 'D'],
index=np.arange(0, 100, 10))
df.plot()
运行结果如下:
柱状图
plot.bar()和plot.barh()分别绘制水平和垂直的柱状图。这时Series和DataFrame的索引将会被用作X(bar)或Y(barh)刻度。
data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop'))
data.plot.bar(ax=axes[0])
data.plot.barh(ax=axes[1])
对于Dataframe,规则与Series相似,柱状图会将每行的值分为一组并分类显示
data = pd.DataFrame(np.random.rand(5,5), index=['one', 'two', 'three', 'four', 'five'],
columns = ('a','b','c','d','e'))
print(data)
data.plot.bar(ax=axes[0])
data.plot.barh(ax=axes[1])
设置stacked=True即可为DataFrame生成堆积柱状图
data.plot.barh(stacked=True, alpha=0.5)
直方图和密度图
直方图(histogram)是一种可以对值频率进行离散化显示的柱状图。数据点被拆分到离散的、间隔均匀的面元中,绘制的是各面元中数据点的数量,通过在Series使用plot.hist方法可以生成直方图。
seaborn的regplot方法可以做一个散布图,并加上一条线性回归的线。
seaborn提供了一个便捷的pairplot函数,它支持在对角线上放置每个变量的直方图或密度估计。