当前位置: 首页 > 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.jsqmd.com/news/1086818/

相关文章:

  • Immutable Tensor架构:突破AI推理能效瓶颈的硬件革新
  • Windows终端HTTPS无感审计:WFP驱动与中间人技术实战
  • 量子化学模拟中的VQE-UCCSD方案与资源优化策略
  • 传奇开服发布系统源码落地应用与场景解析
  • 3步搞定漫画离线收藏:picacomic-downloader让你的漫画库永不丢失
  • 5分钟解锁百度网盘高速下载:告别龟速的3步终极方案
  • 跨平台资源抓取神器:5步解锁res-downloader的完整下载能力
  • 百度网盘macOS客户端下载性能优化方案:技术原理与实现指南
  • ArkLights:明日方舟智能托管助手,解放双手的终极解决方案
  • 在Windows上无缝运行安卓应用:APK安装器的完整解决方案
  • 从原理到实战:魔兽争霸3重制版地图加密技术全解析
  • 智能反射面与大规模天线阵列的物理层安全优化技术
  • 魔兽世界GSE宏编译器:终极技能自动化解决方案
  • 使用AMS1117-5V制作恒流源
  • Web文件上传漏洞攻防实战:从原理到CTFHub靶场绕过技巧
  • GetQzonehistory终极指南:如何快速找回QQ空间丢失的青春记忆
  • PHP代码审计实战:从原理到挖掘SQL注入漏洞
  • 3分钟解决Windows VC运行库问题:VisualCppRedist AIO完整指南
  • 3步实现专业级AI虚拟背景:obs-backgroundremoval完整使用指南
  • JMeter高级参数化实战:构建高并发下数据唯一性的性能测试脚本
  • 抖音下载神器:你的专属无水印视频批量处理解决方案
  • Fay智能代理框架:如何让数字人拥有自主决策与主动交互能力?
  • 终极指南:5分钟掌握微信语音转换,silk-v3-decoder让amr/slk音频转MP3如此简单
  • RH850/U2B 292引脚子板硬件设计、配置与调试实战指南
  • Linux远程桌面安全实战:xrdp漏洞修复与加固指南
  • 5分钟免费解锁Wand游戏修改器完整指南:终极开源增强方案
  • 3分钟学会使用iwck键盘锁定工具:打造无干扰工作环境的终极指南
  • 告别网络依赖:MoocDownloader如何让MOOC学习真正自由
  • Perseus:5分钟解锁碧蓝航线全皮肤的终极指南
  • 从零构建FOC驱动器:深入解析SVPWM与磁场定向控制