更改绘图箱线图悬停数据

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(使用前将#替换为@)

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

  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • 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 和最小值 我尝试过每个 悬停 变量 但没有运气 我的示例代码如