matplotlib是Python实现可视化的第三方库,具有良好的操作系统兼容性,支持几十种图形显示接口和输出格式,称为数据科学中不可或缺的一部分。
1,常用技巧
1.1 导入matplotlib
import matplotlib.pyplot as plt
plt是最常用的接口。
设置绘图样式:使用plt.style来选择图形的绘图风格
plt.style.use('classic')
如何显示图形?
分三种情况,分别是脚本,IPython shell和IPython Notebook。
脚本:显示图形的时候必须使用plt.show(),需要注意的是一个Python会话(session)中只能使用一次plt.show().
IPython shell :在 IPython shell 中交互式地使用Matplotlib 画图非常方便,在IPython 启动 Matplotlib 模式就可以使用它。为了启用这个模式,你需要在启动 ipython 后使用 %matplotlib 魔法命令:
此后的任何plt命令都会自动打开一二图形窗口了。
IPthon Notebook:用 IPython Notebook 进行交互式画图与使用 IPython shell 类似,也需要使用 %matplotlib 命令。你可以将图形直接嵌在 IPython Notebook 页面中,有两种展现形式。
• %matplotlib notebook 会在 Notebook 中启动交互式图形。
• %matplotlib inline 会在 Notebook 中启动静态图形。
2, 画双Y轴图
def visulize_simple(kpi, raw_user):
start = 360
end = 360+24*14
y = kpi[start:end].values
user = raw_user[start:end].values
#x = [i for i in range(start,end)]
x = [i for i in range(len(y))]
fig = plt.figure(figsize=(12,8))
ax1 = fig.add_subplot(2, 1, 1)
ax1.plot(x, y, color='blue', marker='.',label='kpi')
for index in x:
if index % 24 == 24 - 1:
ax1.plot([index, index], [np.min(y), np.max(y)], color='red', linewidth=1.5,
linestyle="--") # plt.plot([index, index], [np.min(y - pre), np.max(y - pre)], color='red', linewidth=1.5, linestyle="--")
ax1.plot([0, len(x)], [np.mean(y), np.mean(y)], color='black', linewidth=1.5, linestyle="-.")
plt.legend()
ax2 = ax1.twinx()
ax2.plot(x, user, '--g', marker='+',label='user')
plt.grid()
plt.legend()
plt.subplot(2, 1, 2)
plt.scatter(raw_user.values, kpi.values)
plt.grid()
plt.legend()
return plt