首先,我们用绘制折线图来实例:在Matplotilb中,折线图主要是使用到了plt库中的plot方法。
plot函数的基本调用签名如下:
#单条线:
plot([x],y,[fmt],*,data=None, **kwargs)
#多条线:
plot([x], y, [fmt], [x2], y2, [fmt2], ...,**kwargs
可选参数 【fmt】是一个字符串来定义图的基本属性如:颜色 (color),点型(market),线型(linestyle)。
-
fmt = '[marker][linestyle][color]'
- 关键字参数**kwargs,除了fmt能够定义的内容外,还可以定义线条宽度、标记大小、标记外框属性等。
- 如果两个参数都对某一外观属性进行了定义,以关键字参数定义为准。即关键字参数**kwargs参数优先级高于fmt参数。
- Line2d关键字参数 **kwargs:由一系列line2d属性相关的关键词参数构成。
fmt 基本参数对应图表
fmt传参示例:
#导入库
import numpy as np
import matplotlib.pyplot as plt
#导入模块
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#显示中文
x = np.arange(3)
y1 = np.array([2.04, 1.57, 1.63])
y2 = np.array([1.69, 1.61, 1.64])
y3 = np.array([4.65, 4.99, 4.94])
y4 = np.array([3.39, 2.33, 4.10])
#导入x轴,y轴数据
error1 = [0.16, 0.08, 0.10]
error2 = [0.27, 0.14, 0.14]
error3 = [0.34, 0.32, 0.29]
error4 = [0.23, 0.23, 0.39]
#指定测量偏差
bar_width = 0.2
#柱形图柱子宽度
plt.bar(x, y1, bar_width)
plt.bar(x + bar_width, y2, bar_width, align = "center", tick_label = ["春季", "夏季", "秋季"])
plt.bar(x + 2*bar_width, y3, bar_width)
plt.bar(x + 3*bar_width, y4, bar_width)
#绘制柱形图
plt.errorbar(x, y1, yerr = error1, capsize = 3, elinewidth=2, fmt = 'k,')
plt.errorbar(x + bar_width, y2, yerr = error2, capsize = 3, elinewidth=2, fmt = 'k8--')
#fmt传参
plt.errorbar(x + 2*bar_width, y3, yerr = error3, capsize = 3, elinewidth=2, color='r', marker='s', linestyle=':' )
plt.errorbar(x + 3*bar_width, y4, yerr = error4, capsize = 3, elinewidth=2, color='g', marker='.', linestyle=':' )
#**kwagrs
#展示绘图
plt.show()
通过**kwargs参数来代替fmt(当我们不想使用fmt时而**kwargs最能来表示折线图的绘画)
**kwargs则代表了单个属性的赋值
代码示例如下:
#导入库
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#显示中文
x = np.arange(3)
y1 = np.array([2.04, 1.57, 1.63])
y2 = np.array([1.69, 1.61, 1.64])
y3 = np.array([4.65, 4.99, 4.94])
y4 = np.array([3.39, 2.33, 4.10])
#导入x轴,y轴数据
error1 = [0.16, 0.08, 0.10]
error2 = [0.27, 0.14, 0.14]
error3 = [0.34, 0.32, 0.29]
error4 = [0.23, 0.23, 0.39]
#指定测量偏差
bar_width = 0.2
#柱形图柱子宽度
plt.bar(x, y1, bar_width)
plt.bar(x + bar_width, y2, bar_width, align = "center", tick_label = ["春季", "夏季", "秋季"])
plt.bar(x + 2*bar_width, y3, bar_width)
plt.bar(x + 3*bar_width, y4, bar_width)
#绘制柱形图
plt.errorbar(x, y1, yerr = error1, capsize = 3, elinewidth=2, fmt = 'k,')
plt.errorbar(x + bar_width, y2, yerr = error2, capsize = 3, elinewidth=2, fmt = 'k8--')
plt.errorbar(x,y1, yerr=error1,capsize=3, elinewidth=2, color='red',linestyle='-',marker='p')
#绘制误差棒
plt.errorbar(x + bar_width,y2,yerr=error2, capsize=3, elinewidth=2, color='red',linestyle='-',marker='p')
plt.errorbar(x + 2*bar_width,y3, yerr=error3, capsize=3, elinewidth=2, color='red',linestyle='-',marker='p')
plt.errorbar(x + 3*bar_width,y4, yerr=error4, capsize=3, elinewidth=2, color='red',linestyle='-',marker='p')
#展示绘图
plt.show()