机器学习03——matplotlib

张开发
2026/5/4 8:54:15 15 分钟阅读
机器学习03——matplotlib
1、实现基础绘图#导入包 import matplotlib.pyplot as plt import random #准备数据 xrange(60) y[random.uniform(15,18) for i in x] #创建画布 plt.figure(figsize(20,8),dpi100) #绘图 plt.plot(x,y) #展示 plt.show()2、添加x、y刻度、网格显示、描述信息图像保存import matplotlib.pyplot as plt import random plt.rcParams[font.sans-serif] [Arial Unicode MS] #1、 Mac 通用中文 plt.rcParams[axes.unicode_minus] False # 解决负号显示问题 #准备数据 xrange(60) y[random.uniform(15,18) for i in x] #创建画布 plt.figure(figsize(20,8),dpi100) #x和y的刻度 x_ticks_label[11点{}分.format(i) for i in x] y_ticksrange(40) #修改x和y的坐标刻度显示 plt.xticks(x[::5],x_ticks_label[::5]) plt.yticks(y_ticks[::5]) # 2. 【关键一步】强制设置 Y 轴显示的最小值和最大值因为 Matplotlib 的“自动缩放”功能和你的刻度设置打架了 plt.ylim(0, 40) #添加描述信息 plt.xlabel(时间) plt.ylabel(温度) plt.title(中午温度变化,fontsize20) #绘图 plt.grid(True,linestyle--,alpha0.5) #设置网格 plt.plot(x,y) #保存图像在plt.show()之前 plt.savefig(./Desktop/1.pdf) #展示 plt.show()3、重置绘图环境import importlib importlib.reload(plt) # 重新加载模块有时语法出错了会无法继续运行代码需要重置找回那个被你弄丢的“工人”4、在一个坐标系中绘制多个图像多个plot即可注意区分线条import matplotlib.pyplot as plt import random plt.rcParams[font.sans-serif] [Arial Unicode MS] plt.rcParams[axes.unicode_minus] False xrange(60) y[random.uniform(15,18) for i in x] y_1[random.uniform(0,5) for i in x] plt.figure(figsize(20,8),dpi100) x_ticks_label[11点{}分.format(i) for i in x] y_ticksrange(40) plt.xticks(x[::5],x_ticks_label[::5]) plt.yticks(y_ticks[::5]) plt.ylim(0, 40) plt.xlabel(时间) plt.ylabel(温度) plt.title(中午温度变化,fontsize20) plt.grid(True,linestyle--,alpha0.5) #绘图 plt.plot(x,y,label北京) plt.plot(x,y_1,colorr,linestyle--,label上海) #添加图例 plt.legend(locbest,fontsize20) plt.savefig(./Desktop/1.pdf) plt.show()5、在多个坐标系显示图像用到了plt.subplots()import matplotlib.pyplot as plt import random plt.rcParams[font.sans-serif] [Arial Unicode MS] plt.rcParams[axes.unicode_minus] False xrange(60) y[random.uniform(15,18) for i in x] y_1[random.uniform(0,5) for i in x] #创建画布把这张纸切成1行2列“面向对象”的写法 fig,axesplt.subplots(nrows1,ncols2,figsize(20,8),dpi100) #绘制画布 axes[0].plot(x,y,label北京) axes[1].plot(x,y_1,colorr,linestyle--,label上海) x_ticks_label[11点{}分.format(i) for i in x] y_ticksrange(40) axes[0].set_xticks(x[::5]) #子图设置要加 .set_ axes[0].set_yticks(y_ticks[::5]) axes[0].set_xticklabels(x_ticks_label[::5]) axes[1].set_xticks(x[::5]) axes[1].set_yticks(y_ticks[::5]) axes[1].set_xticklabels(x_ticks_label[::5]) axes[0].grid(True,linestyle--,alpha0.5) axes[1].grid(True,linestyle--,alpha0.5) axes[0].set_xlabel(时间) axes[0].set_ylabel(温度) axes[0].set_title(中午温度变化,fontsize20) axes[1].set_xlabel(时间) axes[1].set_ylabel(温度) axes[1].set_title(中午温度变化,fontsize20) axes[0].legend(loc0) axes[1].legend(loc0) #plt.savefig(./Desktop/1.pdf) fig.savefig(./Desktop/1.pdf) #两种方法都可以 plt.show()6、绘制其他函数图像import matplotlib.pyplot as plt import numpy as np #plot也可以画各种数学函数的图 xnp.linspace(-10,10,1000) ynp.sin(x) plt.figure(figsize(20,8),dpi100) plt.plot(x,y) plt.show()其他图形折线图显示数据变化趋势散点图判断变量之间是否有数量关联趋势 plt.scatter(x,y)柱状图一眼看出各个数据的大小直方图展示一组或多组的数据分布状况饼图分类数据的占比情况

更多文章