当前位置: 首页 > news >正文

Python全栈开发-第2章 Matplotlib/Plotly高级图表

第一篇 · 数据分析与可视化

📈 第2章 Matplotlib/Plotly高级图表

让数据开口说话—从静态图到交互式可视化

2.1 Matplotlib基础绘图

Python可视化的基石,所有图表库的“祖师爷”

如果说Pandas帮你理解了数据,那Matplotlib就帮你讲述了数据的故事。一张好的图表,胜过千言万语。

Matplotlib是Python可视化的基石—几乎所有其他图表库都在它基础上构建。核心结构是Figure(画布)Axes(子图)。把Figure想象成白纸,Axes就是纸上的一个个绘图框。

importmatplotlib.pyplotaspltimportnumpyasnp plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 折线图months=['1月','2月','3月','4月','5月','6月']revenue=[120,135,148,162,155,178]fig,ax=plt.subplots(figsize=(10,5))ax.plot(months,revenue,'b-o',linewidth=2,markersize=8)ax.set_title('2024年上半年营收趋势',fontsize=16,fontweight='bold')ax.set_xlabel('月份');ax.set_ylabel('营收(万元)')ax.grid(True,alpha=0.3)plt.tight_layout()plt.savefig('line_chart.png',dpi=150)plt.show()print('折线图已保存')
importmatplotlib.pyplotasplt plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 柱状图products=['手机','笔记本','平板','耳机','手表']sales=[580,320,210,450,180]colors=['#FF6B6B','#4ECDC4','#45B7D1','#96CEB4','#FFEAA7']fig,ax=plt.subplots(figsize=(10,5))bars=ax.bar(products,sales,color=colors,edgecolor='white',linewidth=1.5)forbar,valinzip(bars,sales):ax.text(bar.get_x()+bar.get_width()/2,bar.get_height()+10,f'{val}',ha='center',va='bottom',fontsize=12,fontweight='bold')ax.set_title('各品类销量对比',fontsize=16,fontweight='bold')ax.set_ylabel('销量(件)')ax.spines['top'].set_visible(False);ax.spines['right'].set_visible(False)plt.tight_layout();plt.savefig('bar_chart.png',dpi=150);plt.show()
importmatplotlib.pyplotaspltimportnumpyasnp plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsenp.random.seed(42)ad=np.random.uniform(5,50,50)sales=ad*3.5+np.random.normal(0,20,50)fig,axes=plt.subplots(1,2,figsize=(14,5))axes[0].scatter(ad,sales,c='#3498db',alpha=0.7,s=60,edgecolors='white')axes[0].set_title('广告投入 vs 销售额',fontsize=14)axes[0].set_xlabel('广告投入(万元)');axes[0].set_ylabel('销售额(万元)')axes[0].grid(True,alpha=0.3)axes[1].pie([35,28,20,17],labels=['手机','笔记本','平板','配件'],autopct='%1.1f%%',colors=['#FF6B6B','#4ECDC4','#45B7D1','#96CEB4'],explode=(0.05,)*4,shadow=True,startangle=90)axes[1].set_title('各品类销售占比',fontsize=14)plt.tight_layout();plt.savefig('scatter_pie.png',dpi=150);plt.show()

💡 技巧

plt.subplots()是最佳实践:相比plt.plot(),用fig, ax = plt.subplots()更灵活,可以精确控制每个子图。建议从一开始就养成这个习惯。

🔑 核心要点

核心知识点

  • fig, ax = plt.subplots():创建画布和子图
  • ax.plot()折线图、ax.bar()柱状图、ax.scatter()散点图
  • ax.set_title()/set_xlabel()/set_ylabel():标题和标签
  • plt.tight_layout():自动调整布局
  • plt.savefig():保存图片

🧪 随堂测验

在Matplotlib中,Figure和Axes的关系是什么?

  • A. Figure是数据,Axes是图表
  • B. Figure是画布(整个图形),Axes是画布上的子图区域
  • C. 同一个东西的不同叫法
  • D. Axes是画布,Figure是子图

答案解析:Figure是整个图形窗口(画布),可包含一个或多个Axes(子图)。一个Figure就像白纸,每个Axes是纸上的一个绘图区域。

2.2 图表美化与注释

从“能用”到“好看”—让图表专业起来

默认样式的Matplotlib图表看起来有些“朴素”。在汇报时,你需要让图表既美观又易读。Matplotlib提供了丰富的自定义选项,从颜色到字体、从标注到布局,一切尽在掌控。

importmatplotlib.pyplotaspltimportnumpyasnp plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falseplt.style.use('seaborn-v0_8-whitegrid')months=['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']a=[120,135,150,142,168,195,210,198,225
http://www.jsqmd.com/news/1193500/

相关文章:

  • Java异常处理机制与最佳实践详解
  • 2026潮州地区非急救转运救护车出租,重症监护专车护送 - 热点速览
  • 猫抓浏览器资源嗅探扩展终极指南:免费快速捕获网页媒体资源
  • 从性能瓶颈到架构优化:MCP服务器深度性能分析与调优实战
  • 2026 郑州黄金回收推荐|靠谱选收的顶实体门店,大盘价回收无套路 - 奢侈品回收评测
  • Linux命令行入门:文件系统导航与路径操作
  • 贴片机系统架构与SMT生产线优化实践
  • 2026 河南危房加固梁柱墙体加固房屋改扩建施工队伍真实测评 - LYL仔仔
  • CC2640R2F三核架构与传感器控制器实战:物联网超低功耗设计解析
  • 2SC5200与2SA1943对管在千瓦级功放中的应用解析
  • SecGPT-14B实战指南:AI大模型如何赋能红蓝对抗与CTF训练
  • 【ESP-IDF篇】从零到一:ESP-IDF开发环境全攻略,命令行与VSCode双模式实战
  • ThinkPad风扇终极控制指南:TPFanControl2实现静音与性能完美平衡
  • 开关电源EMI抑制:PCB布局与滤波器设计实战
  • TR-069协议核心机制剖析与高效运维实战
  • 一文搞懂如何利用SPI从机模式+PWM精准模拟I2S音频输出
  • 合肥蜀山黄金回收玩真的!报价多少到手多少,零克扣无隐形扣费 - 逸程奢侈品回收中心
  • 2026 上海徐家汇万象城附近黄金回收靠谱吗?实测线下门店,上门验金当场鉴定当场结算 - 融媒生活
  • 计算机毕业设计之jsp校园二手平台的设计与实现
  • 陕西左旋螺纹锚杆厂家众多,怎样挑选专业的? - 热点速览
  • MPh:Python自动化Comsol仿真的终极指南
  • Java实现SM2签名验签:从国密标准到商用检测的完整实战指南
  • 矩阵键盘原理与嵌入式系统应用实践
  • Vichan图像论坛:全球最流行的免费开源图像论坛软件入门指南 [特殊字符]
  • 雷达中国官方售后服务中心|服务热线及网点地址权威信息公示(2026年7月更新) - 亨得利钟表维修中心
  • Biu播放器:解锁B站无损音乐播放与智能下载的终极体验
  • 5分钟快速上手BabelDOC:智能文档翻译的终极解决方案
  • 高级RAG技术:查询扩展、自查询、过滤向量搜索与重排序的实现
  • Beyond Compare 5授权逆向工程:从RSA加密到密钥生成的全链路技术解析
  • 告别尴尬时刻:5分钟搞定Windows防休眠,让你的电脑永远在线