Python中使用Matplotlib绘图示例详解(19)--联接样式和帽样图
- 联接样式和帽样图
import numpy as np import matplotlib.pyplot as plt def plot_angle(ax,x,y,angle,style): phi=np.radians(angle) xx=[x+0.5,x,x+0.5*np.cos(phi)] yy=[y,y,y+0.5*np.sin(phi)] ax.plot(xx,yy,lw=12,color="tab:blue",solid_joinstyle=style) #首先使用三个点绘制蓝色粗实线 ax.plot(xx,yy,lw=1,color="black") #然后使用三个点绘制黑色细实线 ax.plot(xx[1],yy[1],"o",color="tab:red",markersize=3) #最后标注中间的点,标注颜色为红色,标注大小为3 fig,ax=plt.subplots(figsize=(8,6)) ax.set_title("Join style") for x,style in enumerate(["miter","round","bevel"]): #enumerate相当于分别将x赋予了0,1,2,而将style赋予了miter,round,bevel ax.text(x,5,style) #分别在对应的坐标处标记style for y,angle in enumerate([20,45,60,90,120]): plot_angle(ax,x,y,angle,style) if x==0: #实际上x==1和x==0是一样的,都是为了标准相应的内容,但是因为是x是相同的,但是y是变化的,所以要在y的循环里 ax.text(-1.3,y,f"{angle} degrees") ax.text(1,4.7,"(default)") #ax.text(1,4.7,"(default)")在坐标(1,4.7)的位置标注(default) ax.set_xlim(-1.5,2.75) ax.set_ylim(-0.5,5.5) ax.set_axis_on()#设置不显示坐标轴 ax.grid(False)#设置不显示网格 plt.show()#进行显示