【matplotlib教程】使用各种类型数据绘图
系列文章目录
pyplot简介
matplotlib.pyplot是使matplotlib像MATLAB一样工作的命令样式函数的集合。每个pyplot功能都会对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一些线条,用标签装饰绘图等。
在matplotlib.pyplot各种状态下,函数调用之间会保留在一起,以便跟踪当前图形和绘图区域之类的内容,并且绘图功能指向当前轴(请注意,此处和文档中大多数地方的“轴”均指到轴 的图形的部分 和不超过一个轴线的严格的数学术语)。
1、使用列表数据绘图
使用pyplot我们可以非常便捷地生成可视化效果:
import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.grid() # 显示网格 plt.ylabel(some numbers) # 显示y轴标签 plt.show()
您可能想知道为什么x轴的范围是0-3,而y轴的范围是1-4。如果为plot()命令提供单个列表或数组 ,则matplotlib假定它是y值的序列,并自动为您生成x值。由于python范围从0开始,因此默认x向量的长度与y相同,但从0开始。因此x数据为 :[0, 1, 2, 3]
我们也可以通过以下命令来绘制指定点:
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
2、使用numpy数组绘图
不只于列表,我们还可以使用numpy数组作为输入
import numpy as np # evenly sampled time at 200ms intervals t = np.arange(0., 5., 0.2) # red dashes, blue squares and green triangles plt.plot(t, t, r--, t, t**2, bs, t, t**3, g^) plt.show()
3、用关键字字符串绘图
在某些情况下,您拥有某种格式的数据,该格式允许您使用字符串访问特定变量。例如,使用 numpy.recarray或pandas.DataFrame。
Matplotlib允许您为此类对象提供data关键字参数。如果提供的话,您可以使用与这些变量相对应的字符串生成图。
import matplotlib.pyplot as plt
import numpy as np
plt.grid()
data = {
a: np.arange(50),
c: np.random.randint(0, 50, 50),
d: np.random.randn(50)}
data[b] = data[a] + 10 * np.random.randn(50)
data[d] = np.abs(data[d]) * 100
plt.scatter(a, b, c=c, s=d, data=data)
plt.xlabel(entry a)
plt.ylabel(entry b)
plt.show()
4、用分类变量绘图
可以使用分类变量创建图。Matplotlib允许您将类别变量直接传递给许多绘图函数。例如:
import matplotlib.pyplot as plt import numpy as np names = [group_a, group_b, group_c] values = [1, 10, 100] plt.figure(figsize=(9, 3)) plt.subplot(131) plt.bar(names, values) plt.subplot(132) plt.scatter(names, values) plt.subplot(133) plt.plot(names, values) plt.suptitle(Categorical Plotting) plt.show()
