一、折线图
使用.plot()将Series或者DataFrame对象传给matplotlib用以绘制图像。
Series:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
s = pd.Series(np.random.randn(10).cumsum(), index=np.arange(0, 100, 10)) #index相对于绘制x轴
s.plot(style='bo--')
![11098258-3de3b53d6039894c.png](https://upload-images.jianshu.io/upload_images/11098258-3de3b53d6039894c.png)
Series.plot()内部参数有
![11098258-45a8e314249bac4b.png](https://upload-images.jianshu.io/upload_images/11098258-45a8e314249bac4b.png)
![11098258-7000f8da09efffe1.png](https://upload-images.jianshu.io/upload_images/11098258-7000f8da09efffe1.png)
DataFrame:
df = pd.DataFrame(np.random.randn(10, 4).cumsum(0),
columns=['A', 'B', 'C', 'D'],
index=np.arange(0, 100, 10)) #columns相当于图例
df.plot()
![11098258-de9780b925d258de.png](https://upload-images.jianshu.io/upload_images/11098258-de9780b925d258de.png)
DataFrame.plot()内部参数有
![11098258-8f7809e049b317b6.png](https://upload-images.jianshu.io/upload_images/11098258-8f7809e049b317b6.png)
二、柱形图
垂直柱形图:.plot.bar
水平条形图:.plot.barh
索引会被用作是X轴刻度(bar),Y轴刻度(barh)
Series:
fig, axes = plt.subplots(2, 1)
data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop'))
data.plot.bar(ax=axes[0], color='k', alpha=0.7)
data.plot.barh(ax=axes[1], color='k', alpha=0.7)
![11098258-87fb052e7d1b8b84.png](https://upload-images.jianshu.io/upload_images/11098258-87fb052e7d1b8b84.png)
DataFrame:
使用 stacked=True可以生成堆积条形图或者堆积柱形图
fig, axes = plt.subplots(2, 1)
df = pd.DataFrame(np.random.rand(6, 4),
index=['one', 'two', 'three', 'four', 'five', 'six'],
columns=pd.Index(['A', 'B', 'C', 'D'], name='Genus'))
df.plot.bar(ax=axes[0])
df.plot.barh(ax=axes[1],stacked=True) #堆积柱形图
![11098258-407247130d9c2c23.png](https://upload-images.jianshu.io/upload_images/11098258-407247130d9c2c23.png)
三、直方图和概率密度分布图
直方图:.hist()
概率密度分布图:.plot(kind='kde')
plt.figure()
comp1 = np.random.normal(0, 1, size=200)
comp2 = np.random.normal(10, 2, size=200)
values = pd.Series(np.concatenate([comp1, comp2]))
values.hist(bins=100,alpha=0.3,color='k',normed=True)#normed是否进行归一化
values.plot(kind='kde',style='k--')
![11098258-fa7393181d28ebdb.png](https://upload-images.jianshu.io/upload_images/11098258-fa7393181d28ebdb.png)
四、散点图
plt.scatter()
macro = pd.read_csv('examples/macrodata.csv')
data = macro[['cpi', 'm1', 'tbilrate', 'unemp']]
trans_data = np.log(data).diff().dropna()
trans_data[-5:]
![11098258-38272294a58a9d17.png](https://upload-images.jianshu.io/upload_images/11098258-38272294a58a9d17.png)
plt.figure()
plt.scatter(trans_data['m1'],trans_data['unemp'])
plt.title('Changes in log %s versus log %s' % ('m1', 'unemp'))
![11098258-ac3726946328865f.png](https://upload-images.jianshu.io/upload_images/11098258-ac3726946328865f.png)
使用 pd.scatter_matrix()可以在对角线放置直方图或者密度分布图
pd.scatter_matrix(trans_data, diagonal='kde')
![11098258-2abe1e02248560b1.png](https://upload-images.jianshu.io/upload_images/11098258-2abe1e02248560b1.png)