Pandas绘图
Pandas绘图是基于Matplotlib的上层封装
正常工作一般先用Pandas绘图,再辅以Matplotlib修改组件
Pandas绘图的优势:
- 代码简洁
- 针对Pandas数据结构专门优化过(Series/DataFrame)
劣势:
- Pandas绘图自定义程度较差
- matplotlib自定义程度高
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# plt.style.use('seaborn')
plt.rcParams['font.family'] = ['Arial Unicode MS', 'Microsoft Yahei', 'SimHei', 'sans-serif']
# plt.rcParams['axes.unicode_minus'] = False # simhei黑体字 负号乱码 解决
生成数据
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods = 1000))
ts = ts.cumsum()
ts.head()
2000-01-01 -0.154777
2000-01-02 1.012065
2000-01-03 1.628082
2000-01-04 1.647755
2000-01-05 1.800910
Freq: D, dtype: float64
ts.index
DatetimeIndex(['2000-01-01', '2000-01-02', '2000-01-03', '2000-01-04',
'2000-01-05', '2000-01-06', '2000-01-07', '2000-01-08',
'2000-01-09', '2000-01-10',
...
'2002-09-17', '2002-09-18', '2002-09-19', '2002-09-20',
'2002-09-21', '2002-09-22', '2002-09-23', '2002-09-24',
'2002-09-25', '2002-09-26'],
dtype='datetime64[ns]', length=1000, freq='D')
Series绘图
matplotlib绘图
plt.figure(figsize=(18, 8)) # 图像大小
plt.plot(ts.index, ts) # 绘图
plt.title('stock:股票价格') # 标题
Text(0.5,1,'stock:股票价格')
Pandas绘图
Pandas绘图和Matplotlib绘图代码可以结合使用
plt.figure(figsize=(18, 8)) # 图像大小
ts.plot() # 绘图
plt.title('stock:股票价格') # 标题
# plt.show() # 图像不显示时执行
Text(0.5,1,'stock:股票价格')
DataFrame绘图
df = pd.DataFrame(
np.random.randn(10, 4).cumsum(0),
columns=['A', 'B', 'C', 'D'],
index=np.arange(0, 100, 10)
)
df
matplotlib绘图
plt.plot(df.index, df['A'])
plt.plot(df.index, df['B'])
plt.plot(df.index, df['C'])
plt.plot(df.index, df['D'])
[<matplotlib.lines.Line2D at 0x9bcf6d8>]
Pandas绘图
df.plot()
<matplotlib.axes._subplots.AxesSubplot at 0xb5e0cc0>
Pandas绘图的plot方法的常见参数
核密度估计图比直方图的优势
- 线条表现数据分布,可以对比多组数据的分布情况
- 分布情况平滑,更容易观看
df.plot() # 折线图
df.plot(kind='bar') # 柱状图
df.plot(kind='hist') # 直方图
df.plot(kind='kde', figsize=(18, 5), alpha=0.5, grid=True, legend=True) # 核密度估计
plt.grid(linewidth=0.2, alpha=0.5) # 结合Matplotlib编程