(一)设置坐标轴的位置和展示形式
(1)向画布中任意位置添加任意数量的坐标轴
'''通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法,与subplot,subplots不同,axes可以完成子区的交错,覆盖和重叠等视图组合ax(rect, frameon, facecolor)的参数的含义rect=[left, bottom, width, height]left------------>左侧边缘距离画布边缘的距离bottom---------->距离底部画布边缘的距离width----------->坐标轴的宽度height---------->坐标轴的高度left和height--------->画布宽度的归一化距离bottom和width-------->画布高度的归一化距离frameon------------>True,绘制坐标轴的四条轴脊facecolor---------->坐标轴背景的颜色'''import matplotlib.pyplot as pltimport numpy as npplt.axes([0.05, 0.7, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")plt.plot(np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="--")plt.axes([0.3, .4, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(2+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="-")plt.axes([0.55, .1, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(4+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle=":")plt.show()
(2)函数axis()--------调整已经确定的坐标轴的显示,隐藏和刻度范围
'''通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法,与subplot,subplots不同,axes可以完成子区的交错,覆盖和重叠等视图组合ax(rect, frameon, facecolor)的参数的含义rect=[left, bottom, width, height]left------------>左侧边缘距离画布边缘的距离bottom---------->距离底部画布边缘的距离width----------->坐标轴的宽度height---------->坐标轴的高度left和height--------->画布宽度的归一化距离bottom和width-------->画布高度的归一化距离frameon------------>True,绘制坐标轴的四条轴脊facecolor---------->坐标轴背景的颜色'''import matplotlib.pyplot as pltimport numpy as npplt.axes([0.05, 0.7, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")plt.plot(np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="--")plt.ylim(0, 1.5)plt.axis("image")plt.axes([0.3, .4, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(2+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="-")plt.ylim(0, 15)plt.axis([2.1, 3.9, 0.5, 1.9])#axis([xmin, xmax, ymin, ymax])plt.axes([0.55, .1, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(4+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle=":")plt.ylim(0, 1.5)plt.axis("off")#坐标轴的关闭plt.show()
(3)控制坐标轴刻度的显示(一)
import matplotlib.pyplot as pltimport numpy as np'''控制坐标轴刻度的显示的两种方法:一是调用matplotlib的面向对象的API的Axes.set_xticks()和Axes.yticks()实例方法,另一种是调用模块pyplot的API,使用函数setp()设置刻度元素'''ax1 = plt.subplot(121)ax1.set_xticks(range(0, 251, 50))plt.grid(True, axis="x")ax2 = plt.subplot(122)ax2.set_xticks([])plt.grid(True, axis="x")plt.show()
(4)调用函数setp()--------实现刻度值的显示
import matplotlib.pyplot as pltimport numpy as np'''控制坐标轴刻度的显示的两种方法:一是调用matplotlib的面向对象的API的Axes.set_xticks()和Axes.yticks()实例方法,另一种是调用模块pyplot的API,使用函数setp()设置刻度元素'''ax1 = plt.subplot(221)plt.setp(ax1.get_xticklabels(), visible=True)plt.setp(ax1.get_xticklines(), visible=True)plt.grid(True, axis="x")ax2 = plt.subplot(222)plt.setp(ax2.get_xticklabels(), visible=True)plt.setp(ax2.get_xticklines(), visible=False)plt.grid(True, axis="x")#刻度线的隐藏ax3 = plt.subplot(223)plt.setp(ax3.get_xticklabels(), visible=False)plt.setp(ax3.get_xticklines(), visible=True)plt.grid(True, axis="x")#刻度标签的隐藏ax4 = plt.subplot(224)plt.setp(ax4.get_xticklabels(), visible=False)plt.setp(ax4.get_xticklines(), visible=False)plt.grid(True, axis="x")#双隐藏plt.show()
(5)棉棒图的定制化展示
import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0.5, 2*np.pi, 20)y = np.random.randn(20)markerline, stemlines, baseline = plt.stem(x, y)#获得实例,前两个实例的属性值的改变用setpplt.setp(markerline, color="chartreuse", marker="D")plt.setp(stemlines, linestyle="-.")#stemlines是实例列表baseline.set_linewidth(2)#基线的位置和线型plt.show()
(8)控制坐标轴的显示
import matplotlib.pyplot as pltimport numpy as np'''spines实现轴的显示set_ticks_position实现标签的显示'''x = np.linspace(-2*np.pi, 2*np.pi, 1000)y = np.sin(x)ax1 = plt.subplot(221)ax1.spines["right"].set_color("none")ax1.spines["top"].set_color("none")ax1.set_xlim(-2*np.pi, 2*np.pi)ax1.set_ylim(-1.0, 1.0)plt.title(r"$a$")plt.scatter(x, y, marker="+", color="b")ax2 = plt.subplot(222)ax2.spines["right"].set_color("none")ax2.spines["top"].set_color("none")ax2.xaxis.set_ticks_position("bottom")ax2.set_xlim(-2*np.pi, 2*np.pi)ax2.set_ylim(-1.0, 1.0)plt.title(r"$b$")plt.scatter(x, y, marker="+", color="b")ax3 = plt.subplot(223)ax3.spines["right"].set_color("none")ax3.spines["top"].set_color("none")ax3.yaxis.set_ticks_position("left")ax3.set_xlim(-2*np.pi, 2*np.pi)ax3.set_ylim(-1.0, 1.0)plt.title(r"$c$")plt.scatter(x, y, marker="+", color="b")ax4 = plt.subplot(224)ax4.spines["right"].set_color("none")ax4.spines["top"].set_color("none")ax4.xaxis.set_ticks_position("bottom")ax4.yaxis.set_ticks_position("left")ax4.set_xlim(-2*np.pi, 2*np.pi)ax4.set_ylim(-1.0, 1.0)plt.title(r"$d$")plt.scatter(x, y, marker="+", color="b")plt.show()