”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 您可以使用 Matplotlib 根据 Pandas 中的特定列值绘制彩色散点图吗?

您可以使用 Matplotlib 根据 Pandas 中的特定列值绘制彩色散点图吗?

发布于2024-11-08
浏览:915

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

使用 Pandas 和 Matplotlib 按列值对散点图着色

Matplotlib 是一个流行的 Python 库,用于在Python。本文探讨使用 Matplotlib 根据 Pandas DataFrame 特定列中的值对散​​点图进行着色。

导入和数据

首先,我们导入必要的库,包括 Matplotlib(作为 plt)和 Pandas(作为 pd)。我们还生成一个包含三列的示例数据帧(“df”):“身高”、“体重”和“性别”。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})

2021年8月更新

Seaborn引入了新的图形级函数,例如0.11.0版本中的seaborn.relplot。推荐使用这些函数,而不是直接使用 FacetGrid。

sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()

旧答案 (2015)

如果你想直接使用 Matplotlib,你需要将 matplotlib 的散布函数映射到 Pandas DataFrame 的类别上。为此:

  • 根据列和颜色创建一个包含唯一类别的字典。
  • 向 DataFrame 添加一个新的“颜色”列,为每个类别分配相应的颜色。
  • 使用 scatter 函数绘制数据,并将颜色列指定为“c”参数。
def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()
    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))

    df["Color"] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df.Color)
    return fig

fig = dfScatter(df)
fig.savefig('fig1.png')

按照以下步骤,您可以使用 Pandas 和 Matplotlib 轻松地根据列值对散点图进行颜色绘制。

版本声明 本文转载于:1729320559如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在 Go 中为 HTTP 请求设置经过身份验证的代理?
    如何在 Go 中为 HTTP 请求设置经过身份验证的代理?
    在 Go 中使用代理对 HTTP 请求进行身份验证处理 HTTP 请求时,通常会遇到需要使用代理的情况带身份验证的代理。这可能是由于网络限制或为了提高性能。然而,在 Go 中设置带有身份验证的代理可能有点棘手。net/http 包(Go 中处理 HTTP 请求的标准库包)的文档提供了如何使用代理的示...
    编程 发布于2024-11-09
  • 手动测试:完整指南
    手动测试:完整指南
    手动测试在不使用自动化工具的情况下通过人机交互发现错误,在确保软件质量方面发挥着关键作用。它涉及测试人员在不借助脚本或自动化框架的情况下手动执行测试用例来验证软件功能、可用性和性能。虽然自动化变得越来越流行,但手动测试对于确保产品按预期工作仍然至关重要。 手动测试的作用和重要性 虽然自动化测试很有...
    编程 发布于2024-11-09
  • 可简化您工作流程的顶级 API 测试工具
    可简化您工作流程的顶级 API 测试工具
    API 已成为现代软件开发不可或缺的一部分,支持不同系统和应用程序之间的通信。无论您是在构建 Web 应用程序、移动应用程序,甚至是微服务,确保您的 API 完美运行都至关重要。 API 测试工具可以更轻松地自动化和验证 API 的性能、功能和安全性。好消息?其中许多工具都是免费且非常有效的。在这...
    编程 发布于2024-11-09
  • RGFW 底层:剪贴板复制/粘贴
    RGFW 底层:剪贴板复制/粘贴
    Introduction Reading and writing to the clipboard using low-level APIs can be tricky. There are a bunch of steps required. This tutorial simp...
    编程 发布于2024-11-09
  • 为什么我应该使用 `try {} catch {}` 来处理 PDO 错误而不是 `if {} else {}`?
    为什么我应该使用 `try {} catch {}` 来处理 PDO 错误而不是 `if {} else {}`?
    异常错误处理:Try {} Catch {} 与 If {} Else {}从普通 MySQL 到 PDO 的转换在 PHP 中,使用 try {} catch {} 块进行错误处理而不是 if {} else {} 组合的转变已变得普遍。阐明这种方法的优点:错误合并:与嵌套的 if {} else...
    编程 发布于2024-11-09
  • JavaScript 如何控制超时执行并确定剩余时间?
    JavaScript 如何控制超时执行并确定剩余时间?
    JavaScript 中的暂停和恢复超时使用 JavaScript 时,可能需要控制异步操作​​的流程,例如超时。在这里,我们探索暂停和恢复活动超时的方法,以及检索当前超时的剩余时间。暂停和恢复超时要暂停超时,您可以使用包装器拦截 window.setTimeout 调用并提供必要功能的函数。包装函...
    编程 发布于2024-11-09
  • 为什么异步加载脚本中 document.write() 受到限制?
    为什么异步加载脚本中 document.write() 受到限制?
    异步加载脚本中的执行限制:了解 document.write() 限制尝试从异步加载的脚本写入文档会引发控制台消息“无法在‘文档’上执行‘写入’:除非显式打开,否则无法从异步加载的外部脚本写入文档。”尽管脚本的行为符合预期,但可能会出现此消息,让开发人员感到困惑。为什么存在限制异步加载的脚本通常在解...
    编程 发布于2024-11-09
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-11-09
  • 如何根据元素的高度保持元素的纵横比?
    如何根据元素的高度保持元素的纵横比?
    根据高度维护 Div 纵横比将元素的宽度保持为其高度的百分比可能具有挑战性。虽然使用 padding-top 的百分比值可以达到相反的效果,但 padding-left 作为百分比依赖于对象的宽度,而不是其高度。为了解决这个问题,CSS 引入了宽高比属性,提供一个优雅的解决方案来根据高度保持一致的纵...
    编程 发布于2024-11-09
  • 如何使用 PHP 或 Perl 在浏览器中直接显示 PDF 文件?
    如何使用 PHP 或 Perl 在浏览器中直接显示 PDF 文件?
    使用 PHP 或 Perl 在浏览器中显示 PDF 文件直接在浏览器中显示 PDF 文件可能是跟踪用户参与度和跟踪用户参与度的有用技术。保护敏感文件位置。虽然存在下载或创建 PDF 的简单方法,但如何加载现有 PDF 文件进行查看还不是很明显。PHP 解决方案:以下 PHP 代码可以是用于在浏览器中...
    编程 发布于2024-11-09
  • 为什么curl_exec()返回False以及如何有效处理它?
    为什么curl_exec()返回False以及如何有效处理它?
    当curl_exec()返回False时:深入研究错误处理领域在Web开发的世界中,curl_exec()函数在从远程服务器检索数据方面起着至关重要的作用。然而,程序员经常遇到一个令人费解的情况,即该函数始终返回 false。为了解开这个谜团,我们必须踏上错误检查和处理的核心之旅。当curl_exe...
    编程 发布于2024-11-09
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-09
  • 如何消除 Bootstrap 堆叠行中的间隙:综合指南
    如何消除 Bootstrap 堆叠行中的间隙:综合指南
    Bootstrap 堆叠行中的间隙:综合解决方案Bootstrap 堆叠行中存在间隙对于开发人员来说可能是一个令人沮丧的问题。为了解决这个问题,有几种有效的解决方案可用。1。设置元素高度标准化:为所有投资组合元素分配固定高度可确保内容的均匀分布。这消除了不同元素尺寸导致间隙的可能性。2。使用 Mas...
    编程 发布于2024-11-09
  • 为什么使用“shell_exec”从 PHP 调用时我的 Bash 脚本无法执行?
    为什么使用“shell_exec”从 PHP 调用时我的 Bash 脚本无法执行?
    从 PHP 执行 Bash 命令:脚本执行失败故障排除在这个问题中,我们遇到一位 PHP 开发人员尝试使用 shell_exec 从 PHP 执行 bash 脚本。使用的语法为:$output = shell_exec("./script.sh var1 var2");但是,调用...
    编程 发布于2024-11-09
  • 为什么按钮不拉伸以用“display: block”和“width: auto”填充容器?
    为什么按钮不拉伸以用“display: block”和“width: auto”填充容器?
    为什么“display: block”和“width: auto”不能拉伸按钮来填充容器?当使用“display: block”和“ width: auto” 在按钮上,它可能会拉伸并填充其容器。然而,情况并非总是如此。特别是,现代浏览器中的按钮在这方面的行为与其他块元素不同。这种行为背后的原因在于...
    编程 发布于2024-11-09

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3