作者:小伍哥
来源:AI入门学习(公众号)
在python中,常见的数据可视化库有3个:
matplotlib:最常用的库,可以算作可视化的必备技能库,比较底层,api多,学起来不太容易。
seaborn:是建构于matplotlib基础上,能满足绝大多数可视化需求,更特殊的需求还是需要学习matplotlib。
pyecharts:上面的两个库都是静态的可视化库,而pyecharts有很好的web兼容性,可以做到可视化的动态效果。并且种类也比较丰富。比如这个图,就非常厉害:画图神器pyecharts-旭日图
Pandas:而今天要讲的是Pandas的可视化,Pandas主要作为数据分析的库,虽然没有上述三个库那个强大,但是胜在方便,在数据分析的过程中,只要一行代码就能实现。并且图形也非常漂亮。
看案例
pandas 中,有11个比较常见的图形可视化,还有几个比较进阶的,我们一个一个看看怎么画的
import pandas as pdimport numpy as npdf= pd.DataFrame(np.random.rand(10, 4), columns=['A','B','C','D'])
01、柱状图-纵向
df.plot.bar()
stacked=True,画堆叠柱状图
df.plot.bar(stacked=True)
02、柱状图-横向
df.plot.barh()
同样,stacked=True,画堆叠柱状图
df.plot.barh(stacked=True)
03、面积图
df.plot.area(alpha = 0.9)
df.plot.area(stacked=True,alpha = 0.9)
04、密度图-kde
df.plot.kde()
05、密度图-density
df.plot.density()
06、直方图
换个数据集
df = pd.DataFrame({'A': np.random.randn(1000) + 1,
'B': np.random.randn(1000),
'C': np.random.randn(1000) - 1},
columns=['A', 'B', 'C']) df.plot.hist(bins=200)
df.plot.hist(stacked=True, bins=20)
df= pd.DataFrame(np.random.rand(1000, 4), columns=['A','B','C','D'])df.diff().hist(color='k', alpha=0.7, bins=50)
07、箱盒图
df= pd.DataFrame(np.random.rand(100, 4), columns=['A','B','C','D'])df.plot.box()
vert=False也可以换成横向
df.plot.box(vert=False)
08、散点图
df.plot.scatter(x='A',y='B')
09、蜂巢图
df = pd.DataFrame(np.random.randn(1000, 2), columns=['a', 'b'])df['b'] = df['b'] + np.arange(1000)df.plot.hexbin(x='a', y='b', gridsize=25)
07、饼图
series = pd.Series(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'],
name='series')series.plot.pie(figsize=(6, 6))
series.plot.pie(labels=['AA', 'BB', 'CC', 'DD'], colors=['r', 'g', 'b', 'c'],
autopct='%.2f', fontsize=20, figsize=(6, 6))
08、矩阵散点图
from pandas.plotting import scatter_matrix
df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')