02.26 pandas和seaborn数据可视化入门

我们前面介绍了matplotlib,matplotlib实际上是一种相对底层的工具。要绘制一张图表,你要对一些基本组件进行组装:数据展示(即图表类型:线型图、柱状图、盒形图、散布图、等值线图等)、 图例、标题、刻度标签以及其他注解信息。Seaborn 是基于 Python 且非常受欢迎的图形可视化库,在 Matplotlib 的基础上,进行了更高级的封装,使得作图更加方便快捷。


在介绍seaborn之前,先来看一下pandas内置的绘图方法(实际上也是通过传递给matplotlib实现的)。Series和DataFrame都有一个用于生成各类图表的plot方法。默认情况下,它们所生成的是线型图

%matplotlib notebook

import pandas as pd

import numpy as np

s=pd.Series(np.random.randn(100).cumsum())

s.plot()

pandas和seaborn数据可视化入门

该Series对象的索引会被传给matplotlib,并用以绘制X轴。可以通过 use_index=False禁用该功能。X轴的刻度和界限可以通过xticks和xlim选项进行调 节,Y轴就用yticks和ylim:

s=pd.Series(np.random.randn(100).cumsum())

pt=s.plot(style='g--',

label='Random Meandring',

xticks=range(0,120,20),

)

pt.legend(loc='best')

pt.set_title('A chart',fontsize='small')

pandas和seaborn数据可视化入门

DataFrame的plot方法会在一个subplot中为各列绘制一条线,并自动创建图例:

data=pd.DataFrame()

for i in range(4):

s=pd.Series(np.random.randn(100).cumsum())

data[i+1]=s

data.plot()

pandas和seaborn数据可视化入门


pandas和seaborn数据可视化入门

plot.bar()和plot.barh()分别绘制水平和垂直的柱状图。这时,Series和DataFrame的 索引将会被用作X(bar)或Y(barh)刻度:

s=pd.Series(np.random.randint(1,10,size=10))

fig,axes=plt.subplots(2,1)

s.plot.bar(ax=axes[0],color='red',alpha=0.3)

s.plot.barh(ax=axes[1],color='#ff00ff')

pandas和seaborn数据可视化入门

对于 DataFrame,柱状图会将每一行的值分为一组,并排显示:

df=pd.DataFrame(np.random.rand(5,4),

index=list('abcde'),

columns=['one','two','three','four'])

axes=df.plot.bar(color=['red','green','blue','#ff00f0'],

alpha=0.3)

axes.legend(loc='best')

pandas和seaborn数据可视化入门

stacked=True即可为DataFrame生成堆积柱状图:

axes=df.plot.bar(color=['red','green','blue','#ff00f0'],

alpha=0.3,

stacked=True)

pandas和seaborn数据可视化入门

seaborn与pandas有很好的交互效果,下面使用seaborn创建一个柱形图:

pandas和seaborn数据可视化入门

直方图和密度图

import seaborn as sns

norm1=np.random.normal(0,1,size=200)

norm2=np.random.normal(8,4,size=200)

norm=np.concatenate([norm1,norm2])

sns.distplot(norm,bins=100,color='k')

pandas和seaborn数据可视化入门

散点图

pandas和seaborn数据可视化入门

sns.pairplot(trans_data,diag_kind='kde',plot_kws={'alpha':0.3})

pandas和seaborn数据可视化入门



分享到:


相關文章: