使用 ggplotly() 时反转图例顺序

2023-12-13

我想反转水平条形图图例的顺序。添加时guides(fill = guide_legend(reverse = TRUE)) to the ggplot它工作正常(参见第二个图)。然而申请后ggplotly()图例再次采用默认顺序。

如何颠倒顺序plotly legend without改变条形的顺序?

library(ggplot2)
library(dplyr)
data(mtcars)

p1 <- mtcars %>%
  count(cyl, am) %>%
  mutate(cyl = factor(cyl), am = factor(am)) %>%
  ggplot(aes(cyl, n, fill = am)) +
  geom_col(position = "dodge") +
  coord_flip()
p1


p2 <- p1 + guides(fill = guide_legend(reverse = TRUE))
p2

plotly::ggplotly(p2)

enter image description here


添加@Zac Garland 的精彩答案是一个适用于任意长度图例的解决方案:

library(ggplot2)
library(dplyr)

reverse_legend_labels <- function(plotly_plot) {
  n_labels <- length(plotly_plot$x$data)
  plotly_plot$x$data[1:n_labels] <- plotly_plot$x$data[n_labels:1]
  plotly_plot
}

p1 <- mtcars %>%
  count(cyl, am) %>%
  mutate(cyl = factor(cyl), am = factor(am)) %>%
  ggplot(aes(cyl, n, fill = am)) +
  geom_col(position = "dodge") +
  coord_flip()

p2 <- mtcars %>%
  count(am, cyl) %>%
  mutate(cyl = factor(cyl), am = factor(am)) %>%
  ggplot(aes(am, n, fill = cyl)) +
  geom_col(position = "dodge") +
  coord_flip()
p1 %>%
  plotly::ggplotly() %>%
  reverse_legend_labels()

enter image description here

p2 %>%
  plotly::ggplotly() %>%
  reverse_legend_labels()

enter image description here

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

使用 ggplotly() 时反转图例顺序 的相关文章

  • 基于服务器中的条件逻辑呈现闪亮的用户输入

    我正在尝试设置一个闪亮的导航栏面板页面 其中用户控制我根据一组单选按钮中所做的初始选择来显示更改 我直接在 ui 中渲染单选按钮 然后在 Server r 中的 观察到的 逻辑控制结构内构建条件控件 弹出错误是因为我的初始 if 语句计算结
  • 将 Instagram/youtube 嵌入 Shiny R 应用程序

    我想通过点击图表来播放 Instagram 或 Youtube 视频 例如显示异常值等 到目前为止 明确告诉 Shiny 视频内容是有效的 require shiny require ggplot2 data df lt data fram
  • R 中具有稳健回归的异常值

    我正在使用lmrobR 中的函数使用robustbase用于稳健回归的库 我会把它用作 rob reg lt lmrob y 0 dat method MM control a1 当我想返回我使用的摘要时summary rob reg 稳健
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 将绘图调用拆分为多个块

    我正在编写一个图的解释 其中我基本上将在第一个块中创建图 然后描述该输出 并在第二个块中添加一个轴 然而 似乎每个块都会强制一个新的绘图环境 因此当我们尝试使用以下命令运行块时会出现错误axis独自的 观察 output html docu
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • API 请求和curl::curl_fetch_memory(url, handle = handle) 中的错误:SSL 证书问题:证书已过期

    几天前 我运行了代码几个月 没有任何问题 GET url myurl query 今天我遇到一个错误 Error in curl curl fetch memory url handle handle SSL certificate pro
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不

随机推荐

  • 语音识别 Android 应用程序

    我正在制作一个应用程序 它接受用户的命令并实时写入 我最好的选择是什么 像 sphinx 这样的第三方软件还是应该使用内置的 android 语音识别 其次 我希望它能够实时写入 就像我说话时它就开始写入一样 您应该使用内置的 Androi
  • 函数 simplexml_load_string() 上的 XML_PARSE_HUGE

    常数XML PARSE HUGE可以作为第三个参数传递给simplexml load string 根据php net这个标志 放宽解析器的任何硬编码限制 什么是 解析器的默认硬编码限制 我认为放松也有点含糊 它是否消除或增加了 硬编码限制
  • 按钮中的图像 - j2me

    我正在尝试使用 J2ME 构建一个简单的基于菜单的 GUI 菜单项当前是从 Button 类派生的类的对象 有什么办法我可以 替换按钮中的文本并显示图像 类似图标 使文本和图像并排显示在同一菜单栏上 如果我的问题不清楚 请告诉我 我会编辑它
  • 如何使用 PyEnchant 更正文本并自动返回更正后的文本

    import enchant import wx from enchant checker import SpellChecker from enchant checker wxSpellCheckerDialog import wxSpe
  • 我可以对 byte[] 执行按位运算吗?

    假设我有 byte data new byte 1 212 29 144 我能够弄清楚执行按位 AND 的唯一方法是首先将 byte 转换为 uint if BitConverter ToUInt32 data 0 0x7 1 If the
  • Wpf 数据网格最大行数

    我目前正在使用数据网格 我只想允许用户在将 CanUserAddRows 设置为 false 之前输入最多 20 行数据 我在自己的数据网格上创建了 一个依赖属性 源自原始数据网格 我尝试使用该事件 ItemContainerGenerat
  • Pygame:让物体移动速度慢于 1 [重复]

    这个问题在这里已经有答案了 我制作了一个类似太空入侵者的小游戏 一切都很好 除了我觉得我编程的敌人移动得太快了 如果我将它们的移动速度设置为低于 1 例如 0 5 它们甚至不会移动 有什么办法可以让动作变得更慢吗 这是我的敌方单位的代码 i
  • R CMD 检查和 .RDa 数据文件

    我在 data 子目录下有 RDa 格式的数据文件 但是 R CMD check命令无法识别load test RDa 命令及其在此阶段失败并给出以下错误 Warning in readChar con 5L useBytes TRUE c
  • SDL_DisplayFormat 未在此范围内声明:使用 SDL2

    编译器不会返回丢失的 SDL h 而是返回 SDL DisplayFormat 未在位于不同标头的类成员函数的范围内声明 即使我已在 main 中对其进行了初始化 SDL Surface SpriteLoad Load char File
  • gemice_cube 用于重复事件

    我有简单的事件模型 标题 日期 用户 我按月创建了事件日历 gem watu table builder 我需要创建重复事件的功能 我发现我可以使用 gemice cube 来实现它 但我不清楚 我添加到模型 class Event lt
  • SQL 最后 X 条记录的总和

    我已经找了一段时间 但找不到这个问题的答案 也许我没有搜索正确的术语或其他东西 基本上 我有一个数据库 每个日期有任意数量的条目 我需要计算包含条目的最后 X 天的总和 忽略没有条目的日子 我知道如何找到每天的总和 假设我有一个名为 Yie
  • Mysql 距离内查询

    Options lat 25 7742658 lng 80 1936589 miles 30 Query SELECT 3959 acos cos radians lat cos radians lat cos radians lng ra
  • 在gdb中包含malloc.c的源代码吗?

    我如何包含 查看源代码malloc in gdb 我想一步步执行gdb 并步入malloc c调用任何 malloc 函数时的源代码 目前 gdb 所说的是 malloc c No such file or directory This这里
  • uint8_t 乘以布尔值是什么类型?

    来自standard 我试图了解表达式最终会成为哪种类型 bool myBool uint8 t 255 myBool 我保证吗myBool将被投射到uint8 t 又名unsigned char 或者整个结果可能是int 有用的链接 布尔
  • 为什么 git lfs migrate 不跟踪所有 pdf 文件?

    提前备注 git lfs migrate import include pdf 做的工作是git lfs ls files shows e6521dbea0 large180m pdf 我猜 但我还是不明白发生了什么 我需要使用git lf
  • 谷歌身份验证后,即将到来的网址不允许我在科尔多瓦应用程序中进一步前进

    您好 我正在使用 Visual Studio 2015 社区使用 Cordova 应用程序 只需使用 google 身份验证登录应用程序 通过在新窗口中打开它就可以很好地登录 但登录后它会给我三个弹出消息 而不是执行任何操作 这些消息是 在
  • PHP/Javascript 将消息传递到另一个页面

    那么让我解释一下 我基本上希望当您发表评论时 我使用 js jquery 脚本将字符串发送到 insert php 并插入数据库 您将收到 2 积分 现在我已经完成了 所以你得到了 2分 但我想显示一条像stackoverflow这样的消息
  • Git 子模块:位于子模块文件夹中的文件是否必须由同一子模块跟踪?

    我有 git repo A 包含子模块 B 一些文件file c位于 B 的文件夹内 正如您所期望的 它本身位于 A 的文件夹内 问题 我可以跟踪这个文件吗file c来自 A 而不是来自 B 这有什么意义吗 想法是 B 的任何用户都必须添
  • Disqus 评论表单未显示在自托管 WordPress 网站上

    我已按照在我的网站上安装 Disqus 评论系统的所有说明进行操作 但旧的评论表单仍然可见 我的问题是 是足以显示评论 否则 single php 页面上需要有其他内容 我还应该注意什么 我没有安装任何其他评论引擎 谢谢 好的 我找到了 而
  • 使用 ggplotly() 时反转图例顺序

    我想反转水平条形图图例的顺序 添加时guides fill guide legend reverse TRUE to the ggplot它工作正常 参见第二个图 然而申请后ggplotly 图例再次采用默认顺序 如何颠倒顺序plotly