import matplotlib.pyplot as plt
import numpy as np
import numpy.random as randn
import pandas as pd
from pandas import Series,DataFrame
from pylab import mpl
mpl.rcParams['axes.unicode_minus'] = False # 我自己配置的问题
plt.rc('figure', figsize=(10, 6)) # 设置图像大小
%matplotlib inline
1. figure对象
Matplotlib的图像均位于figure对象中。
- 创建figure: plt.figure()
fig = plt.figure()
2. subplot子图
- add_subplot:向figure对象中添加子图。
add_subplot(a, b, c):a,b 表示讲fig分割成axb的区域,c 表示当前选中要操作的区域(c从1开始)。
add_subplot返回的是AxesSubplot对象,plot 绘图的区域是最后一次指定subplot的位置
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
random_arr = randn.rand(50)
# 默认是在最后一次使用subplot的位置上作图
plt.plot(random_arr,'ro--') # r:表示颜色为红色,o:表示数据用o标记 ,--:表示虚线
# 等价于:
# plt.plot(random_arr,linestyle='--',color='r',marker='o')
plt.show()
# hist:直方图:统计分布情况
plt.hist(np.random.rand(8), bins=6, color='b', alpha=0.3) # bins:数据箱子个数
(array([ 3., 0., 0., 0., 2., 3.]),
array([ 0.10261627, 0.19557319, 0.28853011, 0.38148703, 0.47444396,
0.56740088, 0.6603578 ]),
<a list of 6 Patch objects>)
# 散点图
plt.scatter(np.arange(30), np.arange(30) + 3 * randn.randn(30))
- subplots :生成子图/子图数组