更改绘图箱线图悬停数据

2023-12-02

我想更改 python 绘图箱线图的悬停文本和悬停数据。我想要一个用于中位数、平均值、IQR 和日期的压缩悬停框,而不是 5 个单独的悬停框(分别表示最大值、q3、中位数、q1 和最小值)。我尝试过每个“悬停”变量,但没有运气。我的示例代码如下。

import numpy as np
import plotly.express as px

lst = [['2020'], ['2021']] 
numbers = [20 , 25]
r = [x for i, j in zip(lst, numbers) for x in i*j]

df = pd.DataFrame(r, columns=['year'])
df['obs'] = np.arange(1,len(df)+1) * np.random.random()

mean = df.groupby('year').mean()[['obs']]
median = df.groupby('year').median()[['obs']]
iqr = df.groupby('year').quantile(0.75)[['obs']] - df.groupby('year').quantile(0.25)[['obs']]

stats = pd.concat([mean,median,iqr], axis=1)
stats.columns = ['Mean','Median','IQR']
tot_df = pd.merge(df,stats, right_index=True, left_on='year', how = 'left')

fig = px.box(tot_df, x="year", y="obs", points=False, hover_data=['year','Mean','Median','IQR'])
fig.show()

enter image description here

在本例中,我尝试使用“hover_data”,它不会引发错误,但也不会更改绘图,如上所示。我尝试过express和graph_objects,但没有成功。我的情节版本是4.9.0。谢谢你!


  • 已经使用了覆盖技术bar追踪boxplot trace
  • bar可以配置跟踪以显示您想要的信息
  • 为了演示,我设置了opacity to 0.05它可以设置为0使其完全不可见
  • 已经针对plotly5.2.1,尚未针对 4.9.0 进行测试
import numpy as np
import plotly.express as px
import pandas as pd

lst = [['2020'], ['2021']] 
numbers = [20 , 25]
r = [x for i, j in zip(lst, numbers) for x in i*j]

df = pd.DataFrame(r, columns=['year'])
df['obs'] = np.arange(1,len(df)+1) * np.random.random()

mean = df.groupby('year').mean()[['obs']]
median = df.groupby('year').median()[['obs']]
iqr = df.groupby('year').quantile(0.75)[['obs']] - df.groupby('year').quantile(0.25)[['obs']]

stats = pd.concat([mean,median,iqr], axis=1)
stats.columns = ['Mean','Median','IQR']
tot_df = pd.merge(df,stats, right_index=True, left_on='year', how = 'left')

fig = px.box(tot_df, x="year", y="obs", points=False)

fig2 = px.bar(
    tot_df.groupby("year", as_index=False)
    .agg(base=("obs", "min"), bar=("obs", lambda s: s.max() - s.min()))
    .merge(
        tot_df.groupby("year", as_index=False).agg(
            {c: "first" for c in tot_df.columns if c not in ["year", "obs"]}
        ),
        on="year",
    ),
    x="year",
    y="bar",
    base="base",
    hover_data={
        **{c: True for c in tot_df.columns if c not in ["year", "obs"]},
        **{"base": False, "bar": False},
    },
).update_traces(opacity=0.05)

fig.add_traces(fig2.data)

enter image description here

fig2没有命名聚合

fig2 = px.bar(
    tot_df.groupby("year", as_index=False)["obs"]
    .apply(lambda s: pd.Series({"base": s.min(), "bar": s.max() - s.min()}))
    .merge(
        tot_df.groupby("year", as_index=False).agg(
            {c: "first" for c in tot_df.columns if c not in ["year", "obs"]}
        ),
        on="year",
    ),
    x="year",
    y="bar",
    base="base",
    hover_data={
        **{c: True for c in tot_df.columns if c not in ["year", "obs"]},
        **{"base": False, "bar": False},
    },
).update_traces(opacity=0.05)

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

更改绘图箱线图悬停数据 的相关文章

  • 在 Pandas 中按日期获取有效合约

    我在检测 pandas DataFrame 中的活动合约方面遇到了一些困难 假设每一行都是一个协商 对于每一行 我有两列 initial date 和 end date 我想知道的是按日期划分的活跃合约数量 到目前为止我做了一个非常低效的方
  • on_delete=models.PROTECT 和 on_delete=models.CASCADE 在 Django 模型上有什么作用?

    我对 Django 很熟悉 但最近注意到有一个on delete models CASCADE and on delete models PROTECT模型的选项 on delete models CASCADE and on delete
  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • Python 3 __getattribute__ 与点访问行为

    我读了一些关于 python 的对象属性查找的内容 这里 https blog ionelmc ro 2015 02 09 understanding python metaclasses object attribute lookup h
  • 如何从 PyCharm 项目中获取我的“exe”[重复]

    这个问题在这里已经有答案了 通过 PyCharm 在 Python 上编写一些项目 我想从中获取一个exe文件 我尝试过 另存为 gt XXX exe 但是 当我尝试执行它时出现错误 此类操作系统不支持该文件 附注 我有win7 x64 它
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • 如何在 Python 中将彩色输出打印到终端?

    是否有与 Perl 等效的 Python 语言 print color red print
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • 如何使用Python的super()来更新父值?

    我对继承很陌生 之前所有关于继承和 Python 的 super 函数的讨论都有点超出我的理解 我当前使用以下代码来更新父对象的值 usr bin env python test py class Master object mydata
  • Python:计算数据帧列中所有行中特定字符的实例数

    我有一个包含列 toaddress ccaddress body 的数据框 df 我想迭代数据帧的索引 以获取 toaddress 和 ccaddress 字段中电子邮件地址的最小 最大和平均数量 这是通过计算这两列中每个字段中的 和 的实
  • 为什么我用 beautifulSoup 刮的时候有桌子,但没有 pandas

    尝试抓取条目页面转换为制表符分隔格式 主要拉出序列和 UniProt 登录号 当我跑步时 url www signalpeptide de index php sess m listspdb bacteria s details id 10
  • 将输入发送到 python 子进程而不等待结果

    我正在尝试为一段代码编写一些基本测试 该代码通常通过 stdin 无休止地接受输入 直到给出特定的退出命令 我想检查程序是否在给出一些输入字符串时崩溃 经过一段时间来考虑处理 但似乎无法弄清楚如何发送数据而不是陷入等待我不知道的输出关心 我
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • Scipy 稀疏 Cumsum

    假设我有一个scipy sparse csr matrix代表下面的值 0 0 1 2 0 3 0 4 1 0 0 2 0 3 4 0 我想就地计算非零值的累积和 这会将数组更改为 0 0 1 3 0 6 0 10 1 0 0 3 0 6
  • 为什么我们应该在 def __init__(self, n) -> None: 中使用 -> ?

    我们为什么要使用 gt in def init self n gt None 我读了以下摘录来自 PEP 484 https www python org dev peps pep 0484 the meaning of annotatio
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如

随机推荐

  • Swift 项目的代码签名问题

    我安装了 p12 证书和配置文件 当我运行在 Objective C 中创建的项目时 它在我的 iOS 设备 版本 7 1 中运行得很好 但是当我运行在 Swift 中创建的项目时 它会抛出一个代码符号错误 如下所示 无法共同设计 User
  • 在 Chrome.tabs.executeScript 中获取多个值

    如何从 Chrome 插件 tabs executeScript 返回多个元素的值 请在下面的代码中建议 chrome tabs executeScript targetTab id code var header top document
  • Qt:将受保护的 QListWidget::itemChanged 信号连接到插槽

    我根据 new 在 Qt5 中使用了以下语法连接语法避免插槽和信号的类型不匹配QListWidget与可检查的项目 connect item QListWidget itemChanged this mainWindow checkItem
  • 绘制 2D HUD 会扰乱 3D 模型的渲染吗?

    我正在使用 XNA 3 1 我最近使用以下方法创建了一个 2D 平视显示器 HUD Components Add myComponent 到我的游戏 HUD 看起来不错 显示 2D 地图 十字准线和帧速率计数器 问题是 每当 HUD 出现在
  • 获取失败次数过多:集群上的 Hadoop (x2)

    我在过去一周左右一直在使用 Hadoop 试图掌握它 虽然我已经能够设置一个多节点集群 2 台机器 1 台笔记本电脑和一台小型台式机 并检索结果 但我总是当我运行 hadoop 作业时 似乎遇到 太多获取失败 一个示例输出 在一个简单的字数
  • JSON.parse:JSON 数据第 1 行第 1 列出现意外字符 (php)

    我无法访问 json 数据 因为它总是失败并给出错误 SyntaxError JSON parse JSON 数据第 1 行第 1 列出现意外字符 search php输出json数据但scripts js输出json parse错误脚本
  • 为什么我们要指定委托和事件,为什么不在 C# 中使用事件呢?

    为什么我们要与事件一起指定委托 为什么不在 C 中使用事件呢 例如 我有以下代码 class Shop internal delegate void EventHandler object sender GoodsInfoEventArgs
  • Python 电子邮件以纯文本形式发送 HTML

    我有以下应该发送电子邮件的脚本 但是 电子邮件是以纯文本而不是 HTML 形式发送的 我错过了一段代码吗 import smtplib ssl mimetypes from email message import EmailMessage
  • 使用 iText 删除指定区域中包含的文本

    是否可以使用 iText 删除 pdf 文档指定区域 红色矩形区域 中包含的所有文本 请看一下删除矩形中的内容例子 假设我们有以下页面 现在我们要删除坐标定义的矩形中的所有文本 llx 97 lly 405 urx 480 ury 445
  • Java字符串实例化

    为什么此代码返回 false 而不是 true package com company public class Main public static void main String args String fullName Name L
  • 使用 LU 分解求解 CUDA 中的稀疏线性系统

    当前基于 MATLAB 的 C 实现需要大约6ms用于解决Ax B 在哪里A是具有带宽的带状稀疏矩阵3尺寸780 X 780 现在我想用cuBLAS cuSPARSE找到更快的解决方案 我需要解决1440循环中的此类方程 我尝试使用基于 P
  • 如何防止jacoco检测生产代码?

    我在 gradle 中使用 jacoco 插件 apply plugin kotlin jacoco toolVersion 0 7 9 jacocoTestReport reports xml enabled true html enab
  • hide() 在 IE 中不起作用

    我的代码在 Firefox 中运行完美 但在 IE 中给出错误 有任何想法吗 我有一个包含各种选项的下拉列表 我试图根据所选值在另一个下拉列表中显示 隐藏选项 function selectNames var Name SelectName
  • WDK (Windows Driver Kit) 和 VC++ 头文件问题

    我正在尝试从 USB HID 设备读取数据 我知道如何使用 DLLImport hid dll 在 C 中执行此操作 但我想从 C 执行此操作 这样我就不必声明所有结构等 并且只包含头文件 所以我下载了WDK然后 当包含头文件并链接库时 我
  • Chrome://inspect#devices 找不到用于 USB 调试的设备

    Chrome inspect devices 找不到用于 USB 调试的设备 在 Android 上 关闭 USB 调试 然后将其打开 在 Android 上确认 允许 USB 调试 弹出窗口后 检查页面仍然显示 待验证 请接受设备上的调试
  • 收到ajax结果后打开一个弹出框

    我有一个 ajax 代码 可以正常工作并给出所需的结果 我想修改这段代码 并希望当收到来自 ajax 的回复时 应该打开一个弹出 模式框 我可以通过单击按钮打开弹出 模式框
  • 在生产服务器上使用地理编码器

    我正在开发一个基于位置的应用程序 我需要一个可靠的来源来获取地理定位 现在我正在使用这个geocoder plugin 我收到此错误 Geocoding API not responding fast enough see Geocoder
  • 无法打印到 pdf ggplot 图表 [重复]

    这个问题在这里已经有答案了 可能的重复 从 R 函数内生成多个图形 非常奇怪的事情发生在我身上 以下代码无法打印到 pdf 设备 outnames lt c 1 pdf 2 pdf for n in outnames pdf n qplot
  • 使用 jQuery 递归更改元素类型,为什么它部分工作?

    源节点 div class tree div class item a href href class toggle a a href href class name Name a div class collapse div class
  • 更改绘图箱线图悬停数据

    我想更改 python 绘图箱线图的悬停文本和悬停数据 我想要一个用于中位数 平均值 IQR 和日期的压缩悬停框 而不是 5 个单独的悬停框 分别表示最大值 q3 中位数 q1 和最小值 我尝试过每个 悬停 变量 但没有运气 我的示例代码如