Python之matplotlib基础1--曲线图

it2024-08-04  37

Matplotlib 是最流行的Python 底层绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。

虽然一般开发环境用不到Matplotlib插件,但是在学习Numpy或Pandas的过程中需要看到可视化的数据,所以了解Matplotlib还是很有必要的。

实战一:指定x和y的数组,绘制曲线图

from matplotlib import pyplot as plt x=range(2,26,2) y=[15,18,13,2,32,31,12,15,24,23,34,34] #figsize指定图片大小,dpi指定像素 plt.figure(figsize=(20,8),dpi=80) #绘图 plt.plot(x,y) #设置X轴的刻度 #刻度为2,3,4,5直到24,步长为1 # plt.xticks((range(2,25))) #X轴的刻度是2,2.5,3,3.5,4..步长为0.5, _xtick_lable=[i/2 for i in(range(2,49))] #X轴显示太密集,可以每3个显示一次 plt.xticks(_xtick_lable[::3]) #设置Y轴的刻度,加1是因为range取值范围的原因 plt.yticks(range(min(y),max(y)+1)) #保存到本地,指定文件名,如果为svg格式,可以保存为矢量图 #plt.savefig("./sig_size_10.png") #展示图形 plt.show()

#实战二,显示10点11点两个小时每分钟的温度,温度随机 from matplotlib import pyplot as plt import random import matplotlib #通过matplotlib.rc设置支持显示中文字体 #方法1: font = {'family': 'MicroSoft YaHei', 'weight': 'bold', 'size': '10' } matplotlib.rc('font', **font) # #方法2: # from matplotlib import font_manager # #centos和mac系统可以通过fc-list :lang=zh来查询支持中文的字体,windows不知道怎么样,所以我找的这个字体不能正常显示中文 # my_font=font_manager.FontProperties(fname=r"‪C:\Windows\Fonts\simhei.ttf") x=range(0,120) y=[random.randint(20,35) for i in range(0,120)] #figsize指定图片大小,dpi指定像素 plt.figure(figsize=(20,8),dpi=80) #绘图 plt.plot(x,y) #调整X轴的刻度 #生成X轴需要显示的字符 _x=list(x)#转换成List,以便后面取步长 _xtick_lable=["10点{}分".format(i) for i in range(60)] _xtick_lable+=["11点{}分".format(i) for i in range(60)] #plt.xticks如果传入两个参数,两个参数的数量应该相等,一一对应的关系,前面传数值,后面值传对应的字符 #[::5]表示步长为5,每5分钟显示一次,否则太密集 #rotation表示旋转的度数 plt.xticks(x[::5],_xtick_lable[::5],rotation=45) #如果设置中文使用第2种方法,这点需要设置fontproperties参数 # plt.xticks(x[::5],_xtick_lable[::5],rotation=45,fontproperties=my_font) #添加描述信息 plt.xlabel('时间') plt.ylabel('温度') plt.title('10点~11点每分钟温度曲线') # 保存到本地,指定文件名,如果为svg格式,可以保存为矢量图 plt.savefig("./sig_size_10.png") #展示图形 plt.show()

#例三,显示两个同学每次考试成绩的曲线图 from matplotlib import pyplot as plt import matplotlib #设置两个Y轴,分别代表两个同学的成绩 y_1=[3,5,3,6,5,8,9,5,10,8] y_2=[5,4,2,7,8,6,8,7,6,2] #X轴代表一共有10次考试 x=range(10) #支持中文显示 font = {'family': 'MicroSoft YaHei', 'weight': 'bold', 'size': '10' } matplotlib.rc('font', **font) #设置图片大小 plt.figure(figsize=(20,8),dpi=80) #分别画自己和同桌的曲线图 plt.plot(x,y_1,label='自己',color='blue',linestyle=':',linewidth=5,alpha=0.9) plt.plot(x,y_2,label='同桌',color='red',linestyle='-.',linewidth=3,alpha=0.8) #设置X轴的刻度 _xtick_lables=["第{}次成绩".format(i) for i in x] plt.xticks(x,_xtick_lables) #添加网络,alpha参数指定线条深浅 plt.grid(alpha=0.5,linestyle=':') #添加图例,告诉别人每条线代表什么 #先在plt.plot方法上加了'label'参数,然后用legend来指定图例的位置 plt.legend(loc='upper left') # 保存到本地,指定文件名,如果为svg格式,可以保存为矢量图 plt.savefig("./sig_size_10.png") #展示图形 plt.show()

 

参考学习网址:

https://www.bilibili.com/video/BV1hx411d7jb?p=8 

最新回复(0)