Matplotlib学习(一)
Matplotlib对象简介
FigureCanvas 画布
Figure 图
Axes 坐标轴(实际画图的地方)
matplotlib画图的流程
调用figure()得到figure对象 -> 调用fig.add_subplot(111)得到axes对象 -> 调用plt.plot绘制 -> plt.show()显示出figure
目录
2.add_subplot & subplot(一张figure里面生成单张子图)
1.figure参数说明
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
- num:图像编号或名称,数字为编号 ,字符串为名称
- figsize:指定figure的宽和高,单位为英寸;
- dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
- facecolor:背景颜色
- edgecolor:边框颜色
- frameon:是否显示边框
2.add_subplot & subplot(一张figure里面生成单张子图)
pyplot的方式中plt.subplot()参数和面向对象中的add_subplot()参数和含义都相同,使用subplot()不需要创建子画布对象。
第一个参数为子图的总行数,第二个参数为子图的总列数,第三个参数为子图位置,返回的是Axes的对象。如果参数大于10,则可以选择用逗号分割,比如(10,2,10)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
fig = plt.figure()
ax1 = fig.add_subplot(221)
ax1.plot(x, x)
ax2 = fig.add_subplot(222)
ax2.plot(x, -x)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
plt.subplot(221)
plt.plot(x, x)
plt.subplot(222)
plt.plot(x, -x)
plt.show()
3.subplots(一张figure里面生成多张张子图)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]
ax1.plot(x, x)
ax2.plot(x, -x)
plt.show()
4.add_axes(新增子区域)
add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小
add_axes参数可参考官方文档:http://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure
import numpy as np
import matplotlib.pyplot as plt
#新建figure
fig = plt.figure()
# 定义数据
x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 3, 4, 2, 5, 8, 6]
left, bottom, width, height = 0.1, 0.1, 0.8, 0.8
ax1 = fig.add_axes([left, bottom, width, height])
ax1.plot(x, y, 'r')
ax1.set_title('area1')
left, bottom, width, height = 0.2, 0.6, 0.25, 0.25
ax2 = fig.add_axes([left, bottom, width, height])
ax2.plot(x,y, 'b')
ax2.set_title('area2')
plt.show()