如何使用seaborn创建多线图?

2024-01-12

我正在尝试使用 Seaborn 使我的绘图在视觉上比 matplotlib 更好。我有一个数据集,其中有一列“年份”,我想在 X 轴上绘制它,并使用不同颜色的线在 Y 轴上绘制 4 列 A、B、C、D。我试图使用 sns.lineplot 方法来做到这一点,但它只允许 X 轴上有一个变量,Y 轴上只有一个变量。我尝试这样做

sns.lineplot(data_preproc['Year'],data_preproc['A'], err_style=None)
sns.lineplot(data_preproc['Year'],data_preproc['B'], err_style=None)
sns.lineplot(data_preproc['Year'],data_preproc['C'], err_style=None)
sns.lineplot(data_preproc['Year'],data_preproc['D'], err_style=None)

但这样我就不会在图中得到图例来显示哪条彩色线对应于哪条线。我尝试检查文档,但找不到正确的方法来执行此操作。


Seaborn 更喜欢“长格式”作为输入。将 DataFrame 从“宽格式”(每种测量类型一列)转换为长格式(一列用于所有测量值,一列表示类型)的关键要素是pandas.melt https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.melt.html。给定一个data_preproc结构与您的类似,填充随机值:

num_rows = 20
years = list(range(1990, 1990 + num_rows))
data_preproc = pd.DataFrame({
    'Year': years, 
    'A': np.random.randn(num_rows).cumsum(),
    'B': np.random.randn(num_rows).cumsum(),
    'C': np.random.randn(num_rows).cumsum(),
    'D': np.random.randn(num_rows).cumsum()})

具有四条线的单图,每种测量类型一条线,通过以下方式获得

sns.lineplot(x='Year', y='value', hue='variable', 
             data=pd.melt(data_preproc, ['Year']))

(请注意,“值”和“变量”是返回的默认列名称melt,并且可以根据您的喜好进行调整。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用seaborn创建多线图? 的相关文章

  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe

随机推荐

  • C++ 对象实例化

    我是一名 C 程序员 正在尝试理解 C 许多教程使用片段演示对象实例化 例如 Dog sparky new Dog 这意味着稍后您将执行以下操作 delete sparky 这是有道理的 现在 在不需要动态内存分配的情况下 是否有任何理由使
  • Visual Studio中有类似Eclipse Perspective的东西吗?

    我想知道 Visual Studio 2008 或 2010 中是否有类似 Eclipse Perspectives 的东西 对于那些不熟悉 Eclipse 的人 这里有一个视角的定义 http www eclipse org articl
  • spplot() 上的国家/地区标签

    我想为 spplot 上的区域添加名称标签 Example load url http gadm org data rda FRA adm0 RData FR lt gadm FR lt spChFIDs FR paste FR rowna
  • spring-context.xml 的位置

    当我在 tomcat 上运行应用程序时 spring context xml 文件位于 WEB inf spring context xml 还行吧 但是运行 junit 测试时 我必须向它提供 spring test context xm
  • Jquery 与原型 magento 冲突 - 我怎样才能分开?

    我似乎无法通过我的 Magento 网站将 jQuery 与 Prototype 分开 我已经使用更改的标签等在 JsFiddle 上工作了 但是当我将它添加到我的 magento 站点时 我不断收到未捕获的语法错误 页面位于http ww
  • C++ 中的接口继承

    我有以下类结构 class InterfaceA virtual void methodA 0 class ClassA public InterfaceA void methodA class InterfaceB public Inte
  • 使用 odp.net 和 C# 中的 OCI 连接到 Oracle

    我一直在阅读有关如何从 C win 应用程序连接到我的 Oracle 数据库的信息 但我一直 碰壁 我决定使用odp net和OCI 这样客户端计算机就不需要安装客户端 但我无法让它工作 我有一个小型测试应用程序 如下所示的代码 在我的解决
  • 试图找出 Windows Workflow 4.5 问题的根源

    我得到的错误是 工作流应用程序已中止 因为加载或 LoadRunnableInstance 操作引发异常 创建一个新的 WorkflowApplication 对象尝试加载另一个工作流实例 我正在使用 workflowapplication
  • Facebook API 获取好友相册对某些好友不起作用

    我正在使用以下 FQL 查询 select src src big from photo where aid in select aid from album where owner contactId and type profile 但
  • 获取 java.lang.NoClassDefFoundError: org/pdfbox/pdfparser/

    下面是我正在使用的代码 我提供了一个 pdf 文件和一个文本文件作为命令行的输入 import org pdfbox cos COSDocument import org pdfbox pdfparser PDFParser import
  • 在 Maven 中本地引用依赖项 jar

    在我的项目中 我使用的外部 jar 不存在于公司的 Maven 存储库中 所以我收到以下错误 Could not resolve dependencies for project Could not find artifact in htt
  • 加快 Spring Boot 启动时间

    我有一个 Spring Boot 应用程序 我添加了很多依赖项 不幸的是 看起来我需要所有这些依赖项 并且启动时间增加了很多 只是做一个SpringApplication run source args 需要 10 秒 虽然与 习惯 相比
  • Pandas:如何在python3中使用混合类型多索引的切片?

    正如我在这个部分相关的问题 https stackoverflow com questions 50097704 不可能再对混合类型序列进行排序 Python3 6 sorted foo bar 10 200 3 gt TypeError
  • 让Boost Dijkstra算法在到达目的节点时停止

    我正在使用 boost graph 及其 Dijkstra 实现 当有人使用Dijkstra算法时 可能是为了知道图中2个节点之间的最短路径 但是 由于您需要检查图中的所有节点以找到最短路径 通常 如 boost 算法 Dijkstra 会
  • 禁用应用程序内的 Linux 内存过量使用

    您可以通过以下方式调整系统范围内的内存过量使用策略sysctl https en wikipedia org wiki Sysctl调用 但是是否可以在进程本身内部针对每个进程调整此策略 我想让一个特定的实时进程永远不会使用过度使用 尽管系
  • 在 iOS 应用程序中加载网页

    如果我们加载一个网页 我们可以将其转发到 safari 但这会导致用户离开我们的应用程序 有什么方法可以让用户访问任何网页然后返回我们的应用程序 如果您想要 iOS7 之前的设备的某些浏览器类型功能 您可以使用此内联浏览器 http www
  • 使用枚举时错误 CS0246 找不到类型或命名空间名称

    单例脚本 public static ShipSingleton Instance get return instance private void Awake if instance null instance this Destroy
  • 使用 System.exit(0) 强制退出 Android 应用程序不起作用

    当我尝试通过覆盖 Android 设备后退按钮和 System exit 0 的功能来退出 Android 应用程序时 这不起作用 我有一个名为 LoginActivity 的活动和一个名为 Overview Activity 的活动 当我
  • WKWebView 支持哪些文件类型?

    UIWebView支持完整的文件类型列表 详见这个 Apple 技术问答文档 https developer apple com library ios qa qa1630 index html apple ref doc uid DTS4
  • 如何使用seaborn创建多线图?

    我正在尝试使用 Seaborn 使我的绘图在视觉上比 matplotlib 更好 我有一个数据集 其中有一列 年份 我想在 X 轴上绘制它 并使用不同颜色的线在 Y 轴上绘制 4 列 A B C D 我试图使用 sns lineplot 方