绘图中两个 y 轴的一条零线

2024-02-25

该图是使用以下代码生成的:

library(tidyverse)
library(plotly)

df <- data.frame(
      DEP = c("ABC", "DEF", "GHI")
      , VALUE = c(100, 110, 120)
      , LINE = c(-0.1, 0.7, 0.9)
    )

xAxis <- list(
  title = ""
  , tickangle = 0
  , tickfont = list(size = 10)
)

yAxis <- list(
  side = "left"
  , showgrid = TRUE
  , zeroline = TRUE
  , title = ""
)

yAxis2 <- list(
  side = "right"
  , autotick = FALSE
  , ticks = "outside"
  , tick0 = 0
  , dtick = 0.1
  , showgrid = TRUE
  , zeroline = TRUE
  , overlaying = "y"
)

plot_ly(data = df, x = ~DEP) %>%
  add_trace(data = df, x = ~DEP, y = ~VALUE, name = 'VALUE', type = "bar", yaxis = "y", textposition = "auto") %>%
  add_trace(data = df, x = ~DEP, y = ~LINE, name = 'LINE', mode = "lines", type = "scatter",
            line = list(width = 4), yaxis = "y2") %>%
  layout(
    margin = list(r=50, b = 150)
    , xaxis = xAxis
    , yaxis = yAxis
    , yaxis2 = yAxis2
    , showlegend = FALSE
  )

我想更改图形,以便左侧 y 的零线 轴移动到右 y 轴的零线。因此 酒吧也应该移动:


据我所知,没有办法直接在 Plotly 中做到这一点。但你可以设置range https://plot.ly/r/reference/#layout-yaxis-range手动对两个轴进行操作。

对于您的栏,将以下行添加到其布局中:

range = c(max(df$VALUE) / max(df$LINE) * min(df$LINE), max(df$VALUE))

对于你的台词:

range = c(min(df$LINE), max(df$LINE))

which would give the followin graph. enter image description here

一种更简单的方法是将下限设置为 0,这会截断折线图。

在下面的代码中添加一个变量axis_buffer添加是为了避免该范围恰好是您的值的下限和上限。

为了视觉清晰度,我会删除一些网格线或尝试标准化您的数据并将原始数据添加到您的悬停信息中。

library('plotly')
df <- data.frame(
  DEP = c("ABC", "DEF", "GHI")
  , VALUE = c(100, 110, 120)
  , LINE = c(-0.1, 0.7, 0.9)
)

axis_buffer <- 1.1

xAxis <- list(
  title = ""
  , tickangle = 0
  , tickfont = list(size = 10)
)

yAxis <- list(
  side = "left"
  , showgrid = TRUE
  , zeroline = TRUE
  , title = ""
  , range = c(max(df$VALUE) / max(df$LINE) * min(df$LINE) * axis_buffer, max(df$VALUE) * axis_buffer)
)

yAxis2 <- list(
  side = "right"
  , autotick = FALSE
  , ticks = "outside"
  , tick0 = 0
  , dtick = 0.1
  , showgrid = TRUE
  , zeroline = TRUE
  , overlaying = "y"
  , range = c(min(df$LINE) * axis_buffer, max(df$LINE) * axis_buffer)
)

plot_ly(data = df, x = ~DEP) %>%
  add_trace(data = df, x = ~DEP, y = ~VALUE, name = 'VALUE', type = "bar", yaxis = "y", textposition = "auto") %>%
  add_trace(data = df, x = ~DEP, y = ~LINE, name = 'LINE', mode = "lines", type = "scatter",
            line = list(width = 4), yaxis = "y2") %>%
  layout(
    margin = list(r=50, b = 150)
    , xaxis = xAxis
    , yaxis = yAxis
    , yaxis2 = yAxis2
    , showlegend = FALSE
  )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘图中两个 y 轴的一条零线 的相关文章

  • 栅格堆叠后如何写入?

    我想操作几个光栅文件 然后再次写入它们 rasterfiles lt list files C data envi full names TRUE d1 lt overlay stack rasterfiles fun function x
  • 通过新数据更新绘图,而不是在 Jupyter 笔记本中制作新绘图

    我有一些问题 希望你能帮我解决 我需要使用下拉小部件创建交互式绘图 我可以在其中选择并绘制感兴趣的数据 我通过以下方式做到这一点 import plotly graph objects as go import ipywidgets as
  • 将天气 iframe 嵌入到 Shiny Dashboard 中

    我正在尝试将 Forecast io 的天气预报嵌入到闪亮的仪表板中 我最初在使用 符号时遇到了麻烦 但看到一篇文章提供了如何使用特殊字符格式化 HTML 代码的示例 但是 当我运行该应用程序时 我看到一个简单的 未找到 即使我知道该链接有
  • 在 R 中将时间间隔数据扩展为天数

    假设我有如下所示的数据 interval id indiv id role start date end date 1 1 A 2006 05 01 2006 06 16 2 1 B 2006 06 16 2006 10 16 3 1 A
  • 使用管道语法处理模型列表

    我经常喜欢拟合和检查与 R 数据框中的两个变量相关的多个模型 我可以使用如下语法来做到这一点 require tidyverse require broom models lt list hp exp cyl hp cyl map df m
  • 如何在 R 中只为直方图的一个标签着色?

    我有一个像这样的数据框 CellLines ZEB1 600MPE 2 8186 AU565 2 783 BT20 2 7817 BT474 2 6433 BT483 2 4994 BT549 3 035 CAMA1 2 718 DU447
  • jupyter 中的 r 图形 - 无法启动 png() 设备

    我在 Jupyter 中使用 R 但无法在笔记本本身中绘制图表 这是一个可重现的示例 set seed 123 mat as matrix x rnorm 100 y rnorm 100 plot mat 在朱皮特中 Error in pn
  • 如何在 R 中为回归量创建“宏”?

    对于长且重复的模型 我想创建一个 宏 在 Stata 中称为 宏 并通过以下命令完成 global var1 var2 其中包含回归量的模型公式 例如来自 library car lm income education prestige d
  • 回归时如何设置系数值;右

    我正在寻找一种指定预测变量值的方法 当我使用当前数据运行 glm 时 其中一个变量的系数接近 1 我想将其设置为 0 8 我知道这会给我一个较低的 R 2 值 但我先验地知道模型的预测能力会更大 glm 的权重组件看起来很有希望 但我还没有
  • 在 Shiny 中叠加两个 ggplot

    我有一个非常大的数据集 我正在使用 ggplot 在 Shiny 上绘制它 我有一个与 x 轴上的值相关联的滑块 我想用它对选定的数据子集重新着色 并让其余数据保持原样 最简单的选择是重新创建整个绘图 但由于它是一个大型数据集 因此这是一个
  • 如何使用 R 中的函数 sqlSave() 将数据附加到具有 IDENTITY 主键的 SQL Server 表?

    我在SQL Server中创建了一个表 如下所示 CREATE TABLE testPK ID INT NOT NULL IDENTITY 1 1 PRIMARY KEY NumVal NUMERIC 18 4 现在我想使用 RODBC 函
  • 美人鱼图:调整图表周围的空白

    我在用 Rstudio 编译的 Rmd 报告中使用了美人鱼图 在 HTML PDF 输出中 图表上方和下方有大量空白 请参见下面的示例 Header Text r library DiagrammeR mermaid graph TD cl
  • 如何使用 Plotly 将两张图合并为一张图?

    我有2个csv文件 我的代码如下 df pd read csv test csv sep t skiprows range 9 names A B C D df2 pd read csv LoadMatch Limit csv skipro
  • 如何使用autoconf重新生成配置文件?

    我使用 autoconf 重新生成配置文件 它有效 但是当我执行生成的配置文件时 configure 有一些错误消息 例如 configure line 3713 syntax error near unexpected token bla
  • 删除缺失的数据值

    我删除了原始帖子 以便能够发布更大版本的数据集 实际上总共有 418 行 这是我正在进行的生存分析的数据 第一列是 ID 号 其他列标记为 V2 V20 有很多缺失的数据 用 表示 我用coxph 函数来获取以下内容 Saves survi
  • 如何读取 R 中的每个 .csv 文件并将其导出到单个大文件中

    你好 我有以下格式的数据 101 20130826T155649 3 1 round 0 10552 180 yellow 12002 1 round 1 19502 150 yellow 22452 1 round 2 28957 130
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • R 中使用 `UseMethod()` 与 `inherits()` 来确定对象的类

    如果我需要根据 R 对象的类以不同的方式处理它们 我可以使用if and else在单个函数内 foo lt function x if inherits x list Foo the list else if inherits x num
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p

随机推荐

  • 我可以在不使用语音命令的情况下从其他应用程序启动 Google Home 上的操作吗?

    我不确定这是否已经可能 我可以让另一个应用程序向 Google Home 发起操作 而不是让人通过与其对话来发起操作吗 例如 我想让 Smartthings IFTTT 要求 Google Home 播放一些内容 下面几个案例 情况 1 如
  • 将 AngularJS 指令绑定到数组的映射

    我有一个接受对象数组的指令 在标记中声明指令时 作用域具有一个对象数组 其中包含指令所需的对象 所以我需要在数组上应用映射函数 执行此操作的正确方法是什么 以便对原始数组进行的更新反映在指令内 这是一个采用幼稚方法的 Plunker 令我惊
  • 添加“System.Data.SQLite”作为参考

    当我构建用 ASP NET 和 C 完成的项目时 它产生了以下错误 命名空间 System Data 中不存在类型或命名空间名称 SQLite 您是否缺少程序集引用 因此 当我尝试将其添加为参考时 我无法在我的库中找到 System Dat
  • jQuery 获取脚本

    我目前一直在使用几个必须以非常特定的顺序加载的 JavaScript 库 由于 jQuery 的 getScript 是异步的 因此它会非常快速地开始下载所有脚本 并在完成后执行它们 由于它们不按顺序执行 我从库中收到多个错误 不幸的是我无
  • 在 Python 中的 POST 请求中传递“+”字符

    我正在尝试在 Python 脚本中进行一些自动化操作 但遇到了问题 我正在尝试向服务器发送 POST 消息 url http www example com params arg0 value arg1 value f urllib url
  • 如何撰写和提出 RFC?

    我发现 IMAPv4 有一个缺点 因为它强制用户下载整个正文 文本 HTML 附件 如何编写并提出 RFC 来解决该问题 如果您之前有撰写技术文档 提案 尤其是 RFC 的经验 请分享 实际上有一个 RFC RFC 7322 RFC 风格指
  • 如何禁用字符代码 178 (0xB2) (²) 、 179 (0xB3) (3) 和 185 (0xB9) (1) 作为数字?

    使用 SWI Prolog 生成数字时 code type X digit 结果是预期的ASCII http www asciitable com 字符代码和 178 0xB2 179 0xB3 185 0xB9 e g code type
  • 用随机数替换 pandas 数据框中的唯一值

    我有一个 pandas 数据框 我想用随机正态数替换一些唯一值 在下面的示例中 要替换的值为 0 import numpy as np import pandas as pd dates pd date range 20160101 per
  • KVO 不起作用:消息已收到但未处理

    我在使用 KVO 时遇到以下错误 它只适用于 UIViewController 的子类吗 Terminating app due to uncaught exception NSInternalInconsistencyException
  • 如何从 Bash 生成 Pusher 身份验证字符串?

    我无法生成要使用的 正确 身份验证字符串 通过curl向Pusher发送消息 这是我的脚本 当然 秘密部分被删掉了 bin bash key my key secret my secret appID my app id timestamp
  • 如何使用 jasmine 测试具有 setTimeout 的函数?

    我需要为具有以下功能的函数编写测试setTimeout 打电话进去 但我找不到我应该怎么做 这是函数 Disables all submit buttons after a submit button is pressed var bloc
  • Jenkins 重新运行设置向导

    刚刚在 Windows 服务器上安装了最新的 Jenkins 将其更改为作为服务运行 但我的登录不再有效 没问题 暂时禁用安全性 但发现我所有的插件都不见了 如何让它重新运行设置向导 正如所见第310期 https github com j
  • 如何处理 Firebase 通知,即 Android 中的通知消息和数据消息

    当用户处于前台和后台时 使用 Xamarin Android 在 firebase 中处理通知消息和数据消息的最佳方法是什么 另外 如何获取通知数据 例如特定通知的文本 PS 我访问过以下线程 但没有一个真正有帮助 当设备屏幕关闭时如何处理
  • 是否可以使用触控板进行手势操作?

    在 Chrome 中的 Macbook Pro 上 在屏幕上滑动两根手指可以前后移动 我该如何禁用此功能 并在 jQuery 或 Javascript 中创建自定义手势 我真正需要知道的是当两个手指放在触控板上时如何检测 我认为这是最好的方
  • Vue js点击获取html5属性

    我正在做一个使用 vuejs 最新版本的项目 在这个项目中 我想在点击事件上获取与 vue 关联的 html5 属性 我的按钮代码是 a href class btn btn info btn xs i class fa fa pencil
  • 将 div 滚动到另一个 div 上

    我有两个高度为 100 的 div 当你滚动时 我希望第二个 div 覆盖其他滚动 而不是向上滚动第一个 div 就像在这个网站上一样 http www endzeit ausstellung de http www endzeit aus
  • docker-compose 中的 Windows 10 绑定安装不起作用

    我正在使用 docker compose 来管理多容器应用程序 其中 1 个容器需要访问主机上目录的内容 根据 docker 和 docker compose 上的各种文档来源 这似乎很简单 但我正在努力让它工作 event process
  • 在 LINQ to SQL 中执行 InsertOnSubmit 时出现 NullReferenceException

    在我的数据库中 我有一个名为 工作人员 当我通过 linq to sql 将其带入我的 net 项目时 会创建一个实体类 StaffMember 现在 我还在我的项目中创建了一个部分类 StaffMember 以添加我在其他顶层使用的额外属
  • 列表等数据结构类型的 Sphinx 文档字符串标准是什么?

    Sphinx 是否有支持的标准来记录不是简单的单个对象的参数或返回值类型 例如 在下面的例子中 arg1 是一个 str arg2 是一个 str 列表 arg3 是一个 str 或 int 如何在 Sphinx 中指定集合或复合类型 或者
  • 绘图中两个 y 轴的一条零线

    该图是使用以下代码生成的 library tidyverse library plotly df lt data frame DEP c ABC DEF GHI VALUE c 100 110 120 LINE c 0 1 0 7 0 9