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

Bourne 机器学习和数据科学笔记(四)

在本节课中,我们将学习如何进一步自定义Matplotlib图表。我们将重点探索如何修改现有样式中的颜色映射,以及如何精确控制坐标轴的显示范围,从而创建出更专业、更美观的数据可视化图表。


从现有样式中修改颜色

上一节我们介绍了如何为图表应用不同的整体样式。本节中,我们来看看如何在已选定的样式基础上,进一步调整图表的颜色方案。

Matplotlib提供了cmap(颜色映射)参数,允许我们轻松更改数据点的颜色。以下是具体步骤:

首先,我们设置图表样式为seaborn-whitegrid,并创建一个展示50岁以上心脏病患者数据的散点图。

importmatplotlib.pyplotasplt plt.style.use('seaborn-whitegrid')# 假设 `over_50` 是包含年龄和胆固醇数据的数据框fig,ax=plt.subplots(figsize=(10,6))scatter=ax.scatter(over_50["age"],over_50["chol"],c=over_50["target"],cmap="winter")# 这里使用了winter颜色映射ax.set(title="心脏病与年龄和胆固醇的关系",xlabel="年龄",ylabel="胆固醇")ax.axhline(over_50["chol"].mean(),linestyle='--')ax.legend(*scatter.legend_elements(),title="目标")plt.show()

通过将cmap参数设置为"winter",我们将默认的黑白散点图变成了蓝绿色系的渐变图,使得数据点的区分更加明显。

Matplotlib内置了多种颜色映射方案,例如"summer""plasma""viridis"等。您可以在Matplotlib色彩映射官方文档中查看所有选项,并选择最适合您数据展示需求的颜色。


控制坐标轴范围

自定义颜色的图表看起来更好了,但坐标轴上的多余线条(如刻度线延伸出的网格线)有时会影响美观。接下来,我们学习如何使用set_xlim()set_ylim()方法来控制X轴和Y轴的显示范围,从而修剪掉这些多余的线条。

我们将使用之前创建的子图(subplot)代码作为例子,并为其应用颜色映射。

以下是关键代码示例,展示了如何为两个子图分别设置坐标轴范围:

# 假设已创建包含两个子图(ax0, ax1)的图形# 为两个子图应用颜色映射scatter0=ax0.scatter(over_50["age"],over_50["chol"],c=over_50["target"],cmap="winter")scatter1=ax1.scatter(over_50["age"],over_50["thalach"],c=over_50["target"],cmap="winter")# 自定义第一个子图(ax0)的X轴范围,截断右侧多余的线ax0.set_xlim([None,50])# 自定义第二个子图(ax1)的X轴和Y轴范围ax1.set_xlim([50,80])ax1.set_ylim([60,200])

通过上述设置,我们实现了以下效果:

  • 删除了第一个子图X轴上超出50的多余部分。

  • 将第二个子图的X轴范围精确限定在50到80之间。

  • 将第二个子图的Y轴范围限定在60到200之间,从而移除了顶部和底部不必要的空白和线条。

最终,我们得到了一个布局干净、色彩分明、信息呈现专业的图表,非常适合于报告或分享。


https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/bourne-ml-ds/img/064b4b7180ba50d9a115226ac295d8e3_2.png

本节课中我们一起学习了Matplotlib图表自定义的两个进阶技巧:使用cmap参数更改颜色映射,以及使用set_xlim()set_ylim()方法精确控制坐标轴范围。结合之前学习的样式设置,您现在应该能够创建出高度定制化、视觉效果出色的数据可视化图表。请尝试使用不同的颜色映射和坐标轴范围,创建属于您自己的心脏病数据分析图表版本。

81:保存与分享你的图表 📊

https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/bourne-ml-ds/img/6ca402833e1b10d0019663d750441c74_0.png

在本节课中,我们将学习如何将使用 Matplotlib 创建的图表保存为图像文件,以便于分享或在演示中使用。这是数据可视化工作流程的最后一步,也是展示你工作成果的关键环节。


上一节我们介绍了如何自定义和美化图表。本节中我们来看看如何将最终的图表成果保存下来并分享给他人。

当然,如果你一直在 Jupyter Notebook 中工作,你可以在图表上方添加文字说明来阐述你的发现。例如,你可以创建一个单元格,写上“此图表展示了心脏病数据集的一些信息”。你可能会进行更深入的描述来沟通你的工作,然后直接分享你的笔记本文件。

但如果你不想分享整个笔记本,例如在做演示时无法直接运行代码展示过程,你可能需要将图表导出为独立的图像文件。

以下是保存图表的两种主要方法:

1. 手动保存图像

这可能是最简单的方法。你可以在 Jupyter Notebook 中生成的图表上右键点击,选择“另存为图像”。然后选择保存位置和文件名,例如heart_disease_analysis_plot.png。这样你就得到了一个 PNG 格式的图像文件,可以轻松地插入到 Keynote、PowerPoint 等演示文稿中。

2. 通过代码自动保存

另一种更程序化的方法是使用savefig方法。当我们使用plt.figure()或类似方法创建图表时,会生成一个fig(图形)对象。这个对象目前存储在内存中。我们可以调用fig.savefig()方法来将其保存到磁盘。

例如,使用以下代码:

fig.savefig('heart_disease_analysis_plot_saved_with_code.png')

这行代码会将当前图形保存为名为“heart_disease_analysis_plot_saved_with_code.png”的 PNG 文件。PNG 是savefig方法的默认保存格式。

在实际工作中,如果你需要反复生成同类型的图表,可以将绘图和保存的代码封装到一个 Python 函数中。这样,每次调用函数后,图表都会自动导出,提高了工作效率。


恭喜你完成了 Matplotlib 部分的学习!我们从创建一个空白的图表开始,一路学习到如何基于处理过的数据集,制作出高度自定义的复杂子图。

如果你现在感觉有些内容还不太清晰,请不要担心。这类工作需要一些练习和时间来熟悉。通过反复编写代码、犯错和纠错,你会逐渐掌握它。最好的学习方式就是动手实践:尝试用 NumPy 数组创建自己的 DataFrame,然后尽情发挥创意绘制各种图表。试试不同的样式,试试不同的数据,可能性是无限的。

如果需要,现在可以稍作休息。我们下一章节再见 👋。


https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/bourne-ml-ds/img/6ca402833e1b10d0019663d750441c74_2.png

本节课总结

本节课我们一起学习了数据可视化的最后一步:保存与分享图表。我们介绍了两种保存方法:手动右键另存为,以及使用fig.savefig()通过代码自动保存。掌握这些技能能帮助你将数据分析成果有效地展示和传达给他人。

http://www.gsyq.cn/news/1598768.html

相关文章:

  • Immutable Tensor架构:突破AI推理能效瓶颈的硬件革新
  • AI编程的效率幻觉:当代码提交暴涨40%、交付却慢19%——研发效能度量的真相与破局
  • 量子化学模拟中的VQE-UCCSD方案与资源优化策略
  • 传奇开服发布系统源码落地应用与场景解析
  • 5分钟解锁百度网盘高速下载:告别龟速的3步终极方案
  • 在Windows上无缝运行安卓应用:APK安装器的完整解决方案
  • 从原理到实战:魔兽争霸3重制版地图加密技术全解析
  • 魔兽世界GSE宏编译器:终极技能自动化解决方案
  • 3步实现专业级AI虚拟背景:obs-backgroundremoval完整使用指南
  • 抖音下载神器:你的专属无水印视频批量处理解决方案
  • 3分钟学会使用iwck键盘锁定工具:打造无干扰工作环境的终极指南
  • Spring AOP 完整教程(中篇)
  • 5分钟掌握E-Hentai下载器:免费画廊打包终极指南
  • AI驱动的肌电义肢:实时意图识别让智能假手真正听懂大脑
  • OmenSuperHub终极指南:解锁惠普暗影精灵游戏本性能的完整教程
  • KMS_VL_ALL_AIO:如何实现Windows与Office的一键智能激活?
  • 量子相位估计TICC协议:突破控制开销瓶颈
  • Windows安卓应用安装器:告别模拟器,让安卓应用在电脑上原生运行
  • 算法空间复杂度优化:原理、实践与未来趋势
  • RA8M1 SPI/OSPI事件输出与高速接口配置实战指南
  • 终极Jable视频下载解决方案:如何快速高效下载Jable.tv视频?
  • 5分钟免费AI视频生成:零基础成为数字导演的终极指南
  • 企业级xxl-job深度定制:从OpenGauss适配到统一权限融合实战
  • OpenRGB终极指南:告别多软件混乱,一个工具统一控制所有RGB灯光
  • PiliPlus:重新定义你的B站体验,这3个功能让你再也回不去官方版!
  • RA8D2 MCU中断安全与NMI管理实战:TrustZone配置与故障处理
  • STM32与PAJ7620:从零构建手势交互系统
  • 5分钟彻底解决Windows系统卡顿:深度解析Windows Cleaner的技术内核与实战应用
  • GanttProject终极指南:5个简单步骤掌握免费项目管理神器 [特殊字符]
  • MetaTube插件:为Jellyfin/Emby打造智能元数据管理的终极指南