20200116(绘图和可视化——pandas)

由上一节内容可知,matplotlib 实际上是一种比较低级的工具。要组装一张图表,得用它的各种基础组件才行。

pandas 有许多能够利用DataFrame 对象数据组织特点来创建标准图表的高级绘图方法。

1. 线型图

Series 和 DataFrame 都有一个用于生成各类图表的plot 方法。默认情况下,他们生成的是线型图。

fig4 = plt.figure()

s = Series(np.random.randn(10).cumsum(), index = np.arange(0, 100, 10))

s.plot()

如图:

20200116(绘图和可视化——pandas)

Series.plot 方法的参数:

 20200116(绘图和可视化——pandas)

 20200116(绘图和可视化——pandas)

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

df = DataFrame(np.random.randn(10, 4).cumsum(0),
               columns=[‘A‘, ‘B‘, ‘C‘, ‘D‘],
               index = np.arange(0, 100, 10))
df.plot()

如图:

20200116(绘图和可视化——pandas)

专用于DataFrame 的plot 的参数:

20200116(绘图和可视化——pandas)

2. 柱状图

1)在生成线型图的代码中加上 kind=‘bar’(垂直柱状图)或kind=‘barh‘(水平柱状图)即可生成柱状图。

fig5,axes = plt.subplots(2, 1)data = Series(np.random.rand(16), index =list(‘abcdefghijklmnop‘))
data.plot(kind=‘bar‘, ax=axes[0], color=‘k‘, alpha=0.7)
data.plot(kind=‘barh‘, ax=axes[0], color=‘k‘, alpha=0.7)

20200116(绘图和可视化——pandas)

 如图:

20200116(绘图和可视化——pandas)

 

2)对于DataFrame ,柱状图会将每一行的值分为一组:

df = DataFrame(np.random.rand(6, 4),
                index = [‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘],
                columns = pd.Index([‘A‘, ‘B‘, ‘C‘, ‘D‘], name=‘Genus‘))

20200116(绘图和可视化——pandas)

 结果:

20200116(绘图和可视化——pandas)

注:DataFrame 各列的名称“Genus” 被用作了图例的标题。 

3)生成堆积柱状图

设置stacked = True 即可。

df.plot(kind = ‘barh‘, stacked = True, alpha = 0.5)

如图:

20200116(绘图和可视化——pandas)

3. 直方图和密度图

 直方图(histogram)是一种可以对值频率进行离散化显示的直方图。数据点被拆分到离散的、间隔均匀的面元中,绘制的是各面元中数据点的数量。

4. 散布图

散布图(scatter plot)是观察两个一维数据序列之间的关系的有效手段。

 5. 绘制地图:图形化显示海地地震危机数据