matplotlib基本绘图笔记,跟我一起来绘制一个丑陋的三角函数图吧!

 

#encoding=utf-8

import numpy as np
import matplotlib.pyplot as plt


#基本绘图设置
x=np.linspace(-np.pi,np.pi,256,endpoint=True)#2560个点 是否包含最后一个点
c,s=np.cos(x),np.sin(x)
plt.figure(1)#指定绘制图像1
plt.plot(x,c,color="blue",linewidth=1.5,linestyle="-",label="cos",alpha=0.5)#绘制 (自变量,因变量,颜色,宽度,线形,标签,透明度)
plt.plot(x,s,"r*",label="sin")#"r->红色 *->线形"
plt.title("testruilin cos sin")#标题


#设置轴
ax=plt.gca()#轴的编辑器
ax.spines["right"].set_color("none")#隐藏右面的轴
ax.spines["top"].set_color("none")
ax.spines["left"].set_position(("data",0))#把左面的轴移到数据为0的位置
ax.spines["bottom"].set_position(("data",0))


#轴旁边的数字相关设置
ax.xaxis.set_ticks_position("bottom")#把x轴数字放到x轴下方
ax.yaxis.set_ticks_position("left")
plt.yticks(np.linspace(-1,1,5,endpoint=True))#-1到1标5个点
plt.xlim(-5,5)#范围
for label in ax.get_xticklabels()+ax.get_yticklabels():#字体相关设置
    label.set_fontsize(18)
    label.set_bbox(dict(facecolor="white",edgecolor="black",alpha=0.3))


#其他
plt.grid()#网格线
plt.legend(loc="upper left")#图例位置
#plt.axis([-1,2,0.5,1])#显示范围
plt.fill_between(x,np.abs(x)<0.8,c,c>0.1,color="green",alpha=0.4)#填充效果 横坐标绝对值小于0.8为真即1 从y=1开始往下填充 大于0.8即为0 从0往上填充 这是纵向范围 ,横向范围由c定义范围决定,这里如图是纵坐标为0.1以上的横向距离符合,最后填充符合横向距离与纵向距离的范围的交集


#注释
t=1
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=2.2,linestyle="--")#绘制一条线 两点分别为t,0 t,cos(t)的连线 虚线
plt.annotate("cos(1)",xy=(t,np.cos(t)),xycoords="data",xytext=(+10,+30),textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=0.3"))
#注释    基本位置  coords是坐标的意思 xytext=(+10,+30),textcoords="offset points"控制偏移量并设置为相对偏移 arrowprops设置箭头工具 类型 弧度



plt.show()#展示