matplotlib绘图
最近复习了《利用python进行数据分析》一书,主要回顾绘图工具的使用方法和数据处理接口。
matplotlib绘图的不同方式
以热力图和折线图为例,体现面向对象的绘图方式和pyplot接口的不同,理论上面向对象的绘图方式是更推荐的使用方法
数据准备
import matplotlib.pyplot as plt import numpy as np data1 = np.random.randn(100, 100).cumsum(0) data2 = np.random.randn(10).cumsum()
plot方法
plt.figure(figsize=(15, 5)) plt.subplot(121) plt.imshow(data1, ) plt.colorbar() plt.grid(True) plt.xlabel("test_x") plt.ylabel("test_y") plt.subplot(122) plt.plot(data2) plt.xlim((0,12)) plt.ylim((-2,5)) plt.xticks([0,1,2,3,4,5,6,7,8,9,10,11,12], ['q','w','e','r','t','y','u','i','o','p','a','s','d']) plt.show()
结果:
面向对象接口
fig, axes = plt.subplots(1,2,figsize=(15,5), facecolor='w') # 通常设置subplot分布时,返回的axessize是等同于给定的行列数的,即返回axes的二维数组, # 但是当行或者列为1时,返回的是一维axes数据 im = axes[0].imshow(np.random.randn(100,100).cumsum(0)) fig.colorbar(im, ax=axes[0]) axes[0].grid(True) axes[0].set_xlabel("test_x") axes[0].set_ylabel("test_y") axes[1].plot(data2) axes[1].set_xlim((0,12)) axes[1].set_ylim((-2,5)) axes[1].set_xticks([0,1,2,3,4,5,6,7,8,9,10,11,12]) axes[1].set_xticklabels(['q','w','e','r','t','y','u','i','o','p','a','s','d']) plt.show()
结果:
未完待续。。。