如何在Python中的同一个图形上绘制多个密度图

2024-04-08

我知道这最终会成为一个非常混乱的情节,但我很想知道最有效的方法是什么。我的 csv 文件中有一些数据如下所示:

    ROI          Band   Min         Max         Mean        Stdev
1   red_2        Band 1 0.032262    0.124425    0.078073    0.028031
2   red_2        Band 2 0.021072    0.064156    0.037923    0.012178
3   red_2        Band 3 0.013404    0.066043    0.036316    0.014787
4   red_2        Band 4 0.005162    0.055781    0.015526    0.013255
5   red_3        Band 1 0.037488    0.10783     0.057892    0.018964
6   red_3        Band 2 0.02814     0.07237     0.04534     0.014507
7   red_3        Band 3 0.01496     0.112973    0.032751    0.026575
8   red_3        Band 4 0.006566    0.029133    0.018201    0.006897
9   red_4        Band 1 0.022841    0.148666    0.065844    0.0336
10  red_4        Band 2 0.018651    0.175298    0.046383    0.042339
11  red_4        Band 3 0.012256    0.045111    0.024035    0.009711
12  red_4        Band 4 0.001493    0.033822    0.014678    0.007788
13  red_5        Band 1 0.030513    0.18098     0.090056    0.044456
37  bcs_1        Band 1 0.013059    0.076753    0.037674    0.023172
38  bcs_1        Band 2 0.035227    0.08826     0.057672    0.015005
39  bcs_1        Band 3 0.005223    0.028459    0.010836    0.006003
40  bcs_1        Band 4 0.009804    0.031457    0.018094    0.007136
41  bcs_2        Band 1 0.018134    0.083854    0.040654    0.018333
42  bcs_2        Band 2 0.016123    0.088613    0.045742    0.020168
43  bcs_2        Band 3 0.008065    0.030557    0.014596    0.007435
44  bcs_2        Band 4 0.004789    0.016514    0.009815    0.003241
45  bcs_3        Band 1 0.021092    0.077993    0.037246    0.013696
46  bcs_3        Band 2 0.011918    0.068825    0.028775    0.013758
47  bcs_3        Band 3 0.003969    0.021714    0.011336    0.004964
48  bcs_3        Band 4 0.003053    0.015763    0.006283    0.002425
49  bcs_4        Band 1 0.024466    0.079989    0.049291    0.018032
50  bcs_4        Band 2 0.009274    0.093137    0.041979    0.019347
51  bcs_4        Band 3 0.006874    0.027214    0.014386    0.005386
52  bcs_4        Band 4 0.005679    0.026662    0.014529    0.006505

我想创建一个包含 8 条线的概率密度图:其中 4 条线为“红色”的 4 个条带,另一条为“黑色”的 4 个条带。到目前为止,我只有红色和黑色的条带 1投资回报率。但我的代码输出两个不同的图。我尝试过使用子图,但这对我不起作用。

帮助?我知道我的方法冗长且笨拙,因此非常感谢更智能的解决方案!

加载包

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

files = ['example.csv']

整理数据

for f in files:
    fn = f.split('.')[0]
    dat = pd.read_csv(f)
    df0 = dat.loc[:, ['ROI', 'Band', 'Mean']]
    # parse by soil type
    red = df0[df0['ROI'].str.contains("red")]
    black = df0[df0['ROI'].str.contains("bcs")]
    # parse by band 
    red.b1 = red[red['Band'].str.contains("Band 1")]
    red.b2 = red[red['Band'].str.contains("Band 2")]
    red.b3 = red[red['Band'].str.contains("Band 3")]
    red.b4 = red[red['Band'].str.contains("Band 4")]
    black.b1 = black[black['Band'].str.contains("Band 1")]
    black.b2 = black[black['Band'].str.contains("Band 2")]
    black.b3 = black[black['Band'].str.contains("Band 3")]
    black.b4 = black[black['Band'].str.contains("Band 4")]

绘制图形

pd.DataFrame(black.b1).plot(kind="density")
pd.DataFrame(red.b1).plot(kind="density")
plt.show()

我希望该图上有 8 条线。


groupby + str.split

df.groupby([df.ROI.str.split('_').str[0], 'Band']).Mean.plot.kde();

如果你想要传奇

df.groupby([df.ROI.str.split('_').str[0], 'Band']).Mean.plot.kde()
plt.legend();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中的同一个图形上绘制多个密度图 的相关文章

  • 定义Python源代码编码的正确方法

    PEP 263 http www python org dev peps pep 0263 定义如何声明Python源代码编码 通常 Python 文件的前两行应以以下内容开头 usr bin python coding
  • for 循环中的绘图没有可见点

    我正在努力解决我想使用 for 循环制作的情节 我知道当我在循环之后添加它时它会起作用 只是一个简单的图 但我想用另一种方式尝试一下 fib ones 1 10 for k 3 10 hold on fib k fib k 1 fib k
  • 尝试从网页Python和BeautifulSoup获取编码

    我试图从网页检索字符集 这会一直改变 目前我使用 beautifulSoup 来解析页面 然后从标题中提取字符集 这工作正常 直到我遇到一个网站 到目前为止 我的代码以及与其他页面一起使用的代码是 def get encoding soup
  • 为什么第二个 request.session cookies 返回空?

    我想使用 requests Session post 登录网站 但是当我已经登录主页 然后进入帐户页面时 看来cookies还没有保存 因为cookies是空的 而且我无法进入正确的帐户页面 import requests from bs4
  • 使用 Pytest 的参数化添加测试功能的描述

    当其中一个测试失败时 可以在测试正在测试的内容的参数化中添加描述 快速了解测试失败的原因 有时您不知道测试失败的原因 您必须查看代码 通过每个测试的描述 您就可以知道 例如 pytest mark parametrize num1 num2
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • 在Python中读取tiff标签

    我正在尝试用 Python 读取 tiff 文件的标签 该文件是 RGB 的uint16每个通道的值 我目前正在使用tifffile import tifffile img tifffile imread file tif 然而 img是一
  • Python“非规范化”unicode 组合字符

    我正在寻找标准化 python 中的一些 unicode 文本 我想知道是否有一种简单的方法可以在 python 中获得组合 unicode 字符的 非规范化 形式 例如如果我有序列u o xaf i e latin small lette
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • 使用标签或 href 传递 Django 数据

    我有一个包含链接的表 当单击该链接进行更多操作时 我想将一些数据传递给我的函数 my html table tbody for query in queries tr td value a href internal my func que
  • Python 2 的 `exceptions` 模块在 Python3 中丢失了,它的内容到哪里去了?

    一位朋友提到 对于 Python 2 假设您在命令行上的路径环境变量中有它 pydoc exceptions 非常有用 知道它应该可以为他每周节省几分钟的网络查找时间 我自己每周都会用谷歌搜索一次例外层次结构 所以这对我来说也是一个有用的提
  • 使用 suds SOAP 库进行 HTTP 身份验证的奇怪行为

    我有一个正在运行的 python 程序 它使用 suds 通过 SOAP 获取大量数据 Web服务是通过分页功能实现的 这样我就可以抓取nnn每个 fetch 调用的行并获取下一个nnn与后续的电话 如果我使用如下代码向 HTTP 服务器进
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • 确定分割形状几何体的“左”侧和“右”侧

    我的问题是 我怎样才能确定哪一个Aside and Bside的侧面已经分割的旋转矩形几何体 http nbviewer jupyter org urls dl dropbox com s ll3mchnx0jwzjnf determine
  • PyInstaller“ValueError:源代码字符串不能包含空字节”

    我得到了一个ValueError source code string cannot contain null bytes执行命令时pyinstaller main py在具有和不具有管理员权限的cmd中 Traceback most re
  • 如何通过函数注释指示函数需要函数作为参数,或返回函数?

    您可以使用函数注释 http www python org dev peps pep 3107 在python 3中指示参数和返回值的类型 如下所示 def myfunction name str age int gt str return
  • 根据多个阈值将 SciPy 分层树状图切割成簇

    我想将 SciPy 的树状图切割成多个具有多个阈值的簇 我尝试过使用 fcluster 但它只能削减一个阈值 例如 这是我从另一个问题中摘取的一段代码 import pandas data pandas DataFrame total ru
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 非法指令:MacOS High Sierra 上有 4 条指令

    我正在尝试在 pygame 3 6 中制作一个看起来像聊天的窗口 我刚刚将我的 MacBook 更新到版本 10 13 6 在我这样做之前它工作得很好 但在我收到消息之后 非法指令 4 Code import pygame from pyg
  • 如何使用xlwt设置文本颜色

    我无法找到有关如何设置文本颜色的文档 在 xlwt 中如何完成以下操作 style xlwt XFStyle bold font xlwt Font font bold True style font font background col

随机推荐