第一章:使用函数绘制matplotlib的图表组成元素
1、绘制直线图
1 # ============================展现变量的趋势变化========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 8 # sin函数 9 y = np.cos(x) 10 11 # 在标准正态分布中随机的取100个数 12 y1 = np.random.randn(100) 13 14 # ===========绘制直线图============= 15 # x:x轴上的数值,y:y轴上的数值,ls:折线图线条风格,lw:折线图的线条宽度,label:标记图形内容的标签文本 16 plt.plot(x,y,ls="--",lw=2,label="plot figure") 17 18 # 给图形加上图例 19 plt.legend() 20 21 # 显示图片 22 plt.show()
2、绘制散点图
1 # ============================寻找变量之间的变化关系========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0.05,10,1000) 7 8 # 在标准正态分布中随机的取100个数 9 y = np.random.randn(1000) 10 11 # ===========绘制散点图============= 12 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 13 plt.scatter(x,y,c="b",label="scatter figure") 14 15 # 给图形加上图例 16 plt.legend() 17 18 # 显示图片 19 plt.show()
3、设置X/Y轴的数值显示范围
# ============================设置X/Y轴的数值显示范围========================== import matplotlib.pyplot as plt import numpy as np # 从0到10均匀的取1000个数 x = np.linspace(0,10,1000) # 在标准正态分布中随机的取100个数 y = np.random.randn(1000) # ===========绘制散点图============= # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 plt.scatter(x,y,c="b",label="scatter figure") # 给图形加上图例 plt.legend() # 设置X/Y轴的数值显示范围 plt.xlim(0,10) plt.ylim(0,1) # 显示图片 plt.show()
4、设置X/Y轴的文本标签
1 # ============================设置X/Y轴的文本标签========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 8 # 在标准正态分布中随机的取100个数 9 y = np.random.randn(1000) 10 11 # ===========绘制散点图============= 12 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 13 plt.scatter(x,y,c="b",label="scatter figure") 14 15 # 给图形加上图例 16 plt.legend() 17 18 # 设置X/Y轴的数值显示范围 19 plt.xlim(0,10) 20 plt.ylim(0,1) 21 22 # 设置X/Y轴的文本标签 23 plt.xlabel(xlabel="X-axis") 24 plt.ylabel(ylabel="Y-axis") 25 26 # 显示图片 27 plt.show()
5、设置X/Y轴刻度的参考线
1 # ============================设置X/Y轴刻度的参考线========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 plt.legend() 14 15 # 绘制X/Y轴刻度的参考线 16 plt.grid(linestyle=":",color="r") 17 18 # 设置X/Y轴的数值显示范围 19 plt.xlim(0,10) 20 plt.ylim(-1,1) 21 22 # 设置X/Y轴的文本标签 23 plt.xlabel(xlabel="X-axis") 24 plt.ylabel(ylabel="Y-axis") 25 26 # 显示图片 27 plt.show()
6、绘制X/Y轴的水平参考线
1 # ============================绘制X/Y轴的水平参考线========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 plt.legend() 14 15 # 绘制X/Y轴刻度的参考线 16 plt.grid(linestyle=":",color="r") 17 18 # 绘制X/Y轴的水平参考线 19 plt.axhline(y=0.00,c="c",ls="-",lw=2) # 水平 20 plt.axvline(x=4.7,c="c",ls="-",lw=2) # 垂直 21 22 # 设置X/Y轴的数值显示范围 23 plt.xlim(0,10) 24 plt.ylim(-1,1) 25 26 # 设置X/Y轴的文本标签 27 plt.xlabel(xlabel="X-axis") 28 plt.ylabel(ylabel="Y-axis") 29 30 # 显示图片 31 plt.show()
7、绘制垂直于X/Y轴的参考区域
1 # ============================绘制垂直于X/Y轴的参考区域========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 plt.legend() 14 15 # 绘制X/Y轴刻度的参考线 16 # linestyle:网格线的线条风格;color:线条颜色 17 plt.grid(linestyle=":",color="r") 18 19 # 绘制X/Y轴的水平参考线 20 plt.axhline(y=0.00,c="c",ls="-",lw=2) # 水平 21 plt.axvline(x=4.7,c="c",ls="-",lw=2) # 垂直 22 23 # 绘制垂直于X/Y轴的参考区域 24 # xmin/ymin:起始位置,xmax/ymax:终止位置,facecolor:参考区域填充颜色,alpha:透明度 25 plt.axhspan(ymin=-0.15,ymax=0.15,facecolor="y",alpha=0.3) # 水平 26 plt.axvspan(xmin=4,xmax=5.4,facecolor="y",alpha=0.3) # 垂直 27 28 # 设置X/Y轴的数值显示范围 29 plt.xlim(0,10) 30 plt.ylim(-1,1) 31 32 # 设置X/Y轴的文本标签 33 plt.xlabel(xlabel="X-axis") 34 plt.ylabel(ylabel="Y-axis") 35 36 # 显示图片 37 plt.show()
8、图形内容指向型注释文本
1 # ============================图形内容指向型注释文本========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 plt.legend() 14 15 # 绘制X/Y轴刻度的参考线 16 # linestyle:网格线的线条风格;color:线条颜色 17 plt.grid(linestyle=":",color="r") 18 19 # 绘制X/Y轴的水平参考线 20 plt.axhline(y=0.00,c="c",ls="-",lw=2) # 水平 21 plt.axvline(x=4.7,c="c",ls="-",lw=2) # 垂直 22 23 # 绘制垂直于X/Y轴的参考区域 24 # xmin/ymin:起始位置,xmax/ymax:终止位置,facecolor:参考区域填充颜色,alpha:透明度 25 plt.axhspan(ymin=-0.15,ymax=0.15,facecolor="y",alpha=0.3) # 水平 26 plt.axvspan(xmin=4,xmax=5.4,facecolor="y",alpha=0.3) # 垂直 27 28 # 图形内容指向型注释文本 29 # Maximum:要注释的文本,xy:被注释图形内容的坐标位置,xytext:注释文本的位置, 30 # weight:注释内容的字体粗细风格,color:注释文本颜色,arrowprops:指示被注释内容的箭头的属性字典 31 plt.annotate(s="Maximum",xy=(np.pi/2,1.0),xytext=((np.pi/2)+1.0,.8),weight="bold",color="g", 32 arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="g")) 33 34 # 设置X/Y轴的数值显示范围 35 plt.xlim(0,10) 36 plt.ylim(-1,1) 37 38 # 设置X/Y轴的文本标签 39 plt.xlabel(xlabel="X-axis") 40 plt.ylabel(ylabel="Y-axis") 41 42 # 显示图片 43 plt.show()
9、添加图形内容无指向型注释文本
1 =======添加图形内容无指向型注释文本========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 plt.legend() 14 15 # 绘制X/Y轴刻度的参考线 16 # linestyle:网格线的线条风格;color:线条颜色 17 plt.grid(linestyle=":",color="r") 18 19 # 绘制X/Y轴的水平参考线 20 plt.axhline(y=0.00,c="c",ls="-",lw=2) # 水平 21 plt.axvline(x=4.7,c="c",ls="-",lw=2) # 垂直 22 23 # 绘制垂直于X/Y轴的参考区域 24 # xmin/ymin:起始位置,xmax/ymax:终止位置,facecolor:参考区域填充颜色,alpha:透明度 25 plt.axhspan(ymin=-0.15,ymax=0.15,facecolor="y",alpha=0.3) # 水平 26 plt.axvspan(xmin=4,xmax=5.4,facecolor="y",alpha=0.3) # 垂直 27 28 # 图形内容指向型注释文本 29 # Maximum:要注释的文本,xy:被注释图形内容的坐标位置,xytext:注释文本的位置, 30 # weight:注释内容的字体粗细风格,color:注释文本颜色,arrowprops:指示被注释内容的箭头的属性字典 31 plt.annotate(s="Maximum",xy=(np.pi/2,1.0),xytext=((np.pi/2)+1.0,.8),weight="bold",color="g", 32 arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="g")) 33 34 # 添加图形内容无指向型注释文本 35 plt.text(x=2.6,y=0.55,s="y=sin(x)",weight="bold",color="m") 36 37 # 设置X/Y轴的数值显示范围 38 plt.xlim(0,10) 39 plt.ylim(-1,1) 40 41 # 设置X/Y轴的文本标签 42 plt.xlabel(xlabel="X-axis") 43 plt.ylabel(ylabel="Y-axis") 44 45 # 显示图片 46 plt.show()
10、添加图形内容标题
1 =======添加图形内容标题========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 plt.legend() 14 15 # 绘制X/Y轴刻度的参考线 16 # linestyle:网格线的线条风格;color:线条颜色 17 plt.grid(linestyle=":",color="r") 18 19 # 绘制X/Y轴的水平参考线 20 plt.axhline(y=0.00,c="c",ls="-",lw=2) # 水平 21 plt.axvline(x=4.7,c="c",ls="-",lw=2) # 垂直 22 23 # 绘制垂直于X/Y轴的参考区域 24 # xmin/ymin:起始位置,xmax/ymax:终止位置,facecolor:参考区域填充颜色,alpha:透明度 25 plt.axhspan(ymin=-0.15,ymax=0.15,facecolor="y",alpha=0.3) # 水平 26 plt.axvspan(xmin=4,xmax=5.4,facecolor="y",alpha=0.3) # 垂直 27 28 # 图形内容指向型注释文本 29 # Maximum:要注释的文本,xy:被注释图形内容的坐标位置,xytext:注释文本的位置, 30 # weight:注释内容的字体粗细风格,color:注释文本颜色,arrowprops:指示被注释内容的箭头的属性字典 31 plt.annotate(s="Maximum",xy=(np.pi/2,1.0),xytext=((np.pi/2)+1.0,.8),weight="bold",color="g", 32 arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="g")) 33 34 # 添加图形内容无指向型注释文本 35 plt.text(x=2.6,y=0.55,s="y=sin(x)",weight="bold",color="m") 36 37 # 添加图形内容标题 38 plt.title(label="y=sin(x)") 39 40 # 设置X/Y轴的数值显示范围 41 plt.xlim(0,10) 42 plt.ylim(-1,1) 43 44 # 设置X/Y轴的文本标签 45 plt.xlabel(xlabel="X-axis") 46 plt.ylabel(ylabel="Y-axis") 47 48 # 显示图片 49 plt.show()
11、标识不同图形的文本标签图例
1 # ============================标识不同图形的文本标签图例========================== 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 从0到10均匀的取1000个数 6 x = np.linspace(0,10,1000) 7 y = np.sin(x) 8 9 # x:x轴上的数值,y:y轴上的数值,c:颜色,label:标记图形内容的标签文本 10 plt.plot(x,y,ls="-",lw=2,c="b",label="plot figure") 11 12 # 给图形加上图例 13 # loc:图例在图像当中的地理位置 14 plt.legend(loc="lower right") 15 16 # 绘制X/Y轴刻度的参考线 17 # linestyle:网格线的线条风格;color:线条颜色 18 plt.grid(linestyle=":",color="r") 19 20 # 绘制X/Y轴的水平参考线 21 plt.axhline(y=0.00,c="c",ls="-",lw=2) # 水平 22 plt.axvline(x=4.7,c="c",ls="-",lw=2) # 垂直 23 24 # 绘制垂直于X/Y轴的参考区域 25 # xmin/ymin:起始位置,xmax/ymax:终止位置,facecolor:参考区域填充颜色,alpha:透明度 26 plt.axhspan(ymin=-0.15,ymax=0.15,facecolor="y",alpha=0.3) # 水平 27 plt.axvspan(xmin=4,xmax=5.4,facecolor="y",alpha=0.3) # 垂直 28 29 # 图形内容指向型注释文本 30 # Maximum:要注释的文本,xy:被注释图形内容的坐标位置,xytext:注释文本的位置, 31 # weight:注释内容的字体粗细风格,color:注释文本颜色,arrowprops:指示被注释内容的箭头的属性字典 32 plt.annotate(s="Maximum",xy=(np.pi/2,1.0),xytext=((np.pi/2)+1.0,.8),weight="bold",color="g", 33 arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="g")) 34 35 # 添加图形内容无指向型注释文本 36 plt.text(x=2.6,y=0.55,s="y=sin(x)",weight="bold",color="m") 37 38 # 添加图形内容标题 39 plt.title(label="y=sin(x)") 40 41 # 设置X/Y轴的数值显示范围 42 plt.xlim(0,10) 43 plt.ylim(-1,1) 44 45 # 设置X/Y轴的文本标签 46 plt.xlabel(xlabel="X-axis") 47 plt.ylabel(ylabel="Y-axis") 48 49 # 显示图片 50 plt.show()