本文参考《深度学习教科书》石川聪彦 著,陈欢 译
所有代码运行时请删除“%matplotlib inline”
# 将 matplotlib.pyplot 作为 plt 进行导入 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.linspace(0, 2*np.pi) y1 = np.sin(x) y2 = np.cos(x) labels = ["90°", "180°", "270°", "360°"] positions = [np.pi/2, np.pi, np.pi*3/2, np.pi*2] # 设置图表的标题 plt.title("graphs of trigonometric functions") # 设置图表中 x 轴与 y 轴的名称 plt.xlabel("x-axis") plt.ylabel("y-axis") # 在图表中显示网格 plt.grid(True) # 设置图表中 x 轴上的标签 plt.xticks(positions, labels) # 请将数据 x、y1 绘制到图表中,并用黑色对其进行显示 plt.plot(x, y1, color="k") # 请将数据 x、y2 绘制到图表中,并用蓝色对其进行显示 plt.plot(x, y2, color="b") plt.show()
11.2.2 设置图例
# 将 matplotlib.pyplot 作为 plt 进行导入 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.linspace(0, 2*np.pi) y1 = np.sin(x) y2 = np.cos(x) labels = ["90°", "180°", "270°", "360°"] positions = [np.pi/2, np.pi, np.pi*3/2, np.pi*2] # 设置图表的标题 plt.title("graphs of trigonometric functions") # 设置图表中 x 轴与 y 轴的名称 plt.xlabel("x-axis") plt.ylabel("y-axis") # 在图表中显示网格 plt.grid(True) # 设置图表中 x 轴上的标签 plt.xticks(positions, labels) # 请将数据 x、y1 绘制到图表中,使用 “y=sin(x)” 添加标签并使用黑色显示 plt.plot(x, y1, color="k", label="y=sin(x)") # 请将数据 x、y2 绘制到图表中,使用 “y=cos(x)” 添加标签并使用蓝色显示 plt.plot(x, y2, color="b", label="y=cos(x)") # 请设置序列标签 plt.legend(["y=sin(x)", "y=cos(x)"]) plt.show()
11.3 多个子图的绘制
# 将 matplotlib.pyplot 作为 plt 进行导入 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.linspace(0, 2*np.pi) y = np.sin(x) labels = ["90°", "180°", "270°", "360°"] positions = [np.pi/2, np.pi, np.pi*3/2, np.pi*2] # 创建 Figure 对象 fig = plt.figure(figsize=(9, 6)) # 请在 2 × 3 的布局中,从上面数第 2 行,从左边数第 2 列的位置上创建子图对象ax ax = fig.add_subplot(2, 3, 5) # 将图中子图之间的空白间距的横向和纵向的比例都设为 1 plt.subplots_adjust(wspace=1, hspace=1) # 请将子图 ax 中图表的 y 轴的显示范围设置为 [0, 1] ax.set_ylim([0, 1]) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.plot(x,y) # 将子图填入空白部分 axi = [] for i in range(6): if i==4: continue fig.add_subplot(2, 3, i+1) plt.show()
# 将 matplotlib.pyplot 作为 plt 进行导入 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.linspace(0, 2*np.pi) y = np.sin(x) # 创建 Figure 对象 fig = plt.figure(figsize=(9, 6)) # 请在 2 × 3 的布局中,从上面数第 2 行,从左边数第 2 列的位置上创建子图对象ax ax = fig.add_subplot(2, 3, 5) # 将图中子图之间的空白间距的横向和纵向的比例都设为 1 plt.subplots_adjust(wspace=1.0, hspace=1.0) # 请在子图 ax 的图表中设置网格 # 设置子图 ax 的图表标题 ax.set_title("y=sin(x)") # 设置子图 ax 中图表的 x 轴、y 轴的名称 ax.set_xlabel("x-axis") ax.set_ylabel("y-axis") # 将数据 x、y 绘制到图表中并对图表进行显示 ax.plot(x,y) #将子图填入空白部分 axi = [] for i in range(6): if i==4: continue fig.add_subplot(2, 3, i+1) plt.show()
# 将 matplotlib.pyplot 作为 plt 进行导入 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.linspace(0, 2*np.pi) y = np.sin(x) positions = [0, np.pi/2, np.pi, np.pi*3/2, np.pi*2] labels = ["0°", "90°", "180°", "270°", "360°"] # 创建 Figure 对象 fig = plt.figure(figsize=(9, 6)) # 请在 2 × 3 的布局中,从上面数第 2 行,从左边数第 2 列的位置上创建子图对象ax ax = fig.add_subplot(2, 3, 5) # 将图中子图之间的空白间距的横向和纵向的比例都设为 1 plt.subplots_adjust(wspace=1, hspace=1) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.grid(True) # 设置子图 ax 的图表标题 ax.set_title("y=sin(x)") # 设置子图 ax 中图表的 x 轴、y 轴的名称 ax.set_xlabel("x-axis") ax.set_ylabel("y-axis") # 请设置子图 ax 中图表的 x 轴的刻度 ax.set_xticks(positions) ax.set_xticklabels(labels) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.plot(x,y) #将子图填入空白部分 axi = [] for i in range(6): if i==4: continue fig.add_subplot(2, 3, i+1) plt.show()
案例
# 将 matplotlib.pyplot 作为 plt 进行导入 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x_upper = np.linspace(0, 5) x_lower = np.linspace(0, 2 * np.pi) x_tan = np.linspace(-np.pi / 2, np.pi / 2) positions_upper = [i for i in range(5)] positions_lower = [0, np.pi / 2, np.pi, np.pi * 3 / 2, np.pi * 2] positions_tan = [-np.pi / 2, 0, np.pi / 2] labels_upper = [i for i in range(5)] labels_lower = ["0°", "90°", "180°", "270°", "360°"] labels_tan = ["-90°", "0°", "90°"] # 创建 Figure 对象 fig = plt.figure(figsize=(9, 6)) # 请绘制布局为 3 × 2 的多个函数的图表 # 请设置子图并注意不要将它们重叠 plt.subplots_adjust(wspace=0.4, hspace=0.4) # 创建上侧的子图 for i in range(3): y_upper = x_upper ** (i + 1) ax = fig.add_subplot(2, 3, i + 1) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.grid(True) # 设置子图 ax 的图表标题 ax.set_title("$y=x^%i$" % (i + 1)) # 设置子图 ax 中图表的 x 轴、y 轴的名称 ax.set_xlabel("x-axis") ax.set_ylabel("y-axis") # 设置子图 ax 中图表的 x 轴的标签 ax.set_xticks(positions_upper) ax.set_xticklabels(labels_upper) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.plot(x_upper, y_upper) # 创建下侧的子图 # 如果预先将所使用的函数和标题保存到列表中,就可以使用 for 语句进行处理 y_lower_list = [np.sin(x_lower), np.cos(x_lower)] title_list = ["$y=sin(x)$", "$y=cos(x)$"] for i in range(2): y_lower = y_lower_list[i] ax = fig.add_subplot(2, 3, i + 4) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.grid(True) # 设置子图 ax 的图表标题 ax.set_title(title_list[i]) # 设置子图 ax 中图表的 x 轴、y 轴的名称 ax.set_xlabel("x-axis") ax.set_ylabel("y-axis") # 设置子图 ax 中图表的 x 轴的标签 ax.set_xticks(positions_lower) ax.set_xticklabels(labels_lower) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.plot(x_lower, y_lower) # y=tan(x)的图表 ax = fig.add_subplot(2, 3, 6) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.grid(True) # 设置子图 ax 的图表标题 ax.set_title("$y=tan(x)$") # 设置子图 ax 中图表的 x 轴、y 轴的名称 ax.set_xlabel("x-axis") ax.set_ylabel("y-axis") # 设置子图 ax 中图表的 x 轴的标签 ax.set_xticks(positions_tan) ax.set_xticklabels(labels_tan) # 设置子图 ax 中图表的 y 轴的显示范围 ax.set_ylim(-1, 1) # 将数据 x、y 绘制到图表中并对图表进行显示 ax.plot(x_tan, np.tan(x_tan)) plt.show()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)