婚纱摄影网站大全,后台html模板,久久建筑网图集下载,windows server iis 添加网站Matplotlib是Python生态中最核心的数据可视化库之一#xff0c;凭借灵活的定制能力和简洁的语法#xff0c;成为数据分析、科研绘图、报表制作的必备工具。本文将从实战角度出发#xff0c;手把手教你掌握折线图、柱状图、直方图三种高频图表的绘制方法#xff0c;覆盖基础…Matplotlib是Python生态中最核心的数据可视化库之一凭借灵活的定制能力和简洁的语法成为数据分析、科研绘图、报表制作的必备工具。本文将从实战角度出发手把手教你掌握折线图、柱状图、直方图三种高频图表的绘制方法覆盖基础语法、参数调整、样式优化等核心知识点零基础也能快速上手。一、前期准备环境搭建与基础概念1. 安装Matplotlib确保已安装Python环境通过pip命令快速安装Matplotlibpip install matplotlib同时建议安装NumPy用于生成示例数据pip install numpy2. 核心模块与绘图逻辑Matplotlib的绘图核心是pyplot模块通常简写为plt。其基本绘图逻辑为导入模块import matplotlib.pyplot as plt准备数据整理需要可视化的数值型数据调用绘图函数如plot()、bar()生成图表框架调整样式标题、标签、刻度等提升图表可读性显示/保存图表plt.show()或plt.savefig()二、折线图展示数据趋势变化折线图适用于展示数据随时间、序列等维度的连续变化趋势是最常用的趋势可视化图表。1. 基础折线图绘制示例绘制某城市一周的气温变化趋势importmatplotlib.pyplotaspltimportnumpyasnp# 1. 准备数据x[周一,周二,周三,周四,周五,周六,周日]# 横轴星期y[22,24,21,26,28,27,25]# 纵轴气温℃# 2. 创建画布可选默认自动创建plt.figure(figsize(8,5))# 设置画布大小宽8英寸高5英寸# 3. 绘制折线图plt.plot(x,y,# x/y轴数据colorred,# 线条颜色linestyle-,# 线条样式实线--为虚线:为点线linewidth2,# 线条宽度markero,# 数据点标记圆形s为正方形^为三角形markersize6)# 标记大小# 4. 添加图表元素plt.title(某城市一周气温变化趋势,fontsize14)# 标题plt.xlabel(星期,fontsize12)# 横轴标签plt.ylabel(气温℃,fontsize12)plt.xticks(fontsize10)# 横轴刻度字体大小plt.yticks(range(20,30,2),fontsize10)# 纵轴刻度范围与步长plt.grid(alpha0.3)# 添加网格alpha控制透明度# 5. 显示图表plt.show()2. 进阶多折线对比若需对比多组数据趋势如最高温与最低温多次调用plot()即可importmatplotlib.pyplotasplt# 数据准备x[周一,周二,周三,周四,周五,周六,周日]high_temp[22,24,21,26,28,27,25]low_temp[15,16,14,18,20,19,17]plt.figure(figsize(8,5))# 绘制最高温折线plt.plot(x,high_temp,colorred,markero,label最高温)# 绘制最低温折线plt.plot(x,low_temp,colorblue,markers,label最低温)# 添加图例需配合label参数plt.legend(locupper right,fontsize10)plt.title(某城市一周最高/最低气温对比,fontsize14)plt.xlabel(星期)plt.ylabel(气温℃)plt.grid(alpha0.3)plt.show()三、柱状图对比不同类别数据大小柱状图条形图适用于对比不同类别、分组数据的数值大小直观展示各类别间的差异。1. 基础柱状图绘制示例对比不同产品的月度销量importmatplotlib.pyplotasplt# 数据准备products[产品A,产品B,产品C,产品D]sales[120,180,90,150]# 销量件plt.figure(figsize(8,5))# 绘制柱状图barsplt.bar(products,sales,width0.6,# 柱子宽度color[#FF6B6B,#4ECDC4,#45B7D1,#96CEB4],# 自定义颜色edgecolorblack)# 柱子边框颜色# 为柱子添加数值标签forbarinbars:heightbar.get_height()plt.text(bar.get_x()bar.get_width()/2,# 标签x坐标柱子中心height2,# 标签y坐标柱子顶部偏移str(height),# 标签内容hacenter,fontsize10)# 水平居中plt.title(月度产品销量对比,fontsize14)plt.xlabel(产品类别)plt.ylabel(销量件)plt.ylim(0,200)# 纵轴范围避免标签超出图表plt.show()2. 进阶分组柱状图若需对比同一类别在不同维度的数据如2023和2024年各产品销量可绘制分组柱状图importmatplotlib.pyplotaspltimportnumpyasnp# 数据准备products[产品A,产品B,产品C,产品D]sales_2023[120,180,90,150]sales_2024[150,160,110,170]xnp.arange(len(products))# 生成x轴位置[0,1,2,3]width0.35# 每组柱子宽度plt.figure(figsize(8,5))# 绘制2023年销量柱子plt.bar(x-width/2,sales_2023,width,label2023年,color#FF6B6B)# 绘制2024年销量柱子plt.bar(xwidth/2,sales_2024,width,label2024年,color#4ECDC4)# 调整x轴刻度与标签plt.xticks(x,products)plt.legend(fontsize10)plt.title(2023-2024年产品销量对比,fontsize14)plt.xlabel(产品类别)plt.ylabel(销量件)plt.show()四、直方图展示数据分布特征直方图与柱状图易混淆但核心用途不同直方图用于展示连续数据的分布情况如身高、分数、销售额的分布横轴为数据区间纵轴为区间内的频数/频率。1. 基础直方图绘制示例分析1000名学生的数学成绩分布importmatplotlib.pyplotaspltimportnumpyasnp# 生成模拟数据均值75标准差10的正态分布成绩np.random.seed(42)# 固定随机种子保证结果可复现scoresnp.random.normal(75,10,1000)scoresnp.clip(scores,0,100)# 限制成绩范围0-100plt.figure(figsize(8,5))# 绘制直方图n,bins,patchesplt.hist(scores,bins10,# 区间数量组数range(0,100),# 数据范围color#45B7D1,edgecolorblack,alpha0.7)# 添加数值标签foriinrange(len(n)):plt.text((bins[i]bins[i1])/2,# 区间中心x坐标n[i]5,# 频数y坐标偏移int(n[i]),# 频数取整hacenter,fontsize9)plt.title(1000名学生数学成绩分布,fontsize14)plt.xlabel(成绩区间)plt.ylabel(人数频数)plt.grid(axisy,alpha0.3)# 仅显示y轴网格plt.show()2. 关键参数说明bins组数可指定具体区间如bins[0,60,70,80,90,100]也可指定数量density若设为True纵轴显示频率概率密度而非频数range限定数据范围超出范围的数据会被忽略。五、通用优化技巧中文显示问题若图表中中文乱码添加以下代码plt.rcParams[font.sans-serif][SimHei]# Windows系统# plt.rcParams[font.sans-serif] [PingFang SC] # macOS系统plt.rcParams[axes.unicode_minus]False# 解决负号显示问题保存图表用plt.savefig()替代plt.show()可保存高清图片plt.savefig(气温趋势.png,dpi300,bbox_inchestight)# dpi控制分辨率bbox_inches裁剪空白样式预设Matplotlib提供多种预设样式可通过plt.style.use()调用plt.style.use(ggplot)# 仿R语言ggplot2样式plt.style.use(seaborn-v0_8)# 仿seaborn样式