Matplotlib Numpy,Matplotlib是一个图形库,它以Numpy库做为基础,上一章介绍传递列表做为参数,表示数据点和设置轴的数值范围。我们也可以直接把Numpy数组作为输入数据,数组经过pandas处理后,无需做进一步处理,可以直接供matplotlib
使用。
学习本文之前,可以先了解Numpy基础知识和Pandas基础知识,推荐极客教程Numpy教程和极客教程pandas 教程供大家参考。
使用Numpy库绘图
我们看一下如何在同一图形中绘制三种不同的趋势图,我们使用Numpy库生成呈正弦趋势分布的数据点,用arange()
函数生成x
轴的一系列数据点t
,对于每个点对应的y
值,我们使用np.sin()
函数,对x
轴的一系列数据点t
应用sin()
函数(无需使用for循环)。如下所示:
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0, 2.5, 0.1)
y1 = np.sin(np.pi * t)
y2 = np.sin(np.pi*t + np.pi/2)
y3 = np.sin(np.pi*t - np.pi/2)
plt.title("geek-docs.com")
plt.plot(t, y1, 'b*', t, y2, 'g^', t, y3, 'ys')
plt.show()
输出结果如下;
上面使用三种颜色和三个符号表示三种不同的趋势,我们还可以用点和线组成不同的线型,如下所示,用彩色线条表示三种正弦趋势图形。
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0, 2.5, 0.1)
y1 = np.sin(np.pi * t)
y2 = np.sin(np.pi*t + np.pi/2)
y3 = np.sin(np.pi*t - np.pi/2)
plt.title("geek-docs.com")
plt.plot(t, y1, 'b--', t, y2, 'g', t, y3, 'r-.')
plt.show()
输出结果如下:
更加复杂的示例,如下所示:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
x = np.linspace(0, 10, 1000)
y = np.sin(x) + 1
z = np.cos(x ** 2) + 1
plt.figure(figsize = (8, 4))
plt.plot(x, y, label='\sin x+1', color = 'red', linewidth = 2)
plt.plot(x, z, 'b--', label='\cos x^2+1')
plt.xlabel('Time(s)')
plt.ylabel('Volt')
plt.title('极客教程geek-docs.com')
plt.ylim(0,2.2)
plt.xlim(0,10)
plt.legend(loc='best')
plt.show()
输出结果如下:
符号说明
上文见到的b*
、g^
、ys
、b--
等等符号分别表示什么意思呢?如下图所示:
颜色字符
线型字符
标记字符
扩展知识点
NumPy 数学函数
极客教程Numpy 教程
极客教程Pandas 教程