r - order Plotly 条形图 wrt Y 轴/按条形高度
问题描述
有没有办法将条形图排序为 Y 轴上的值,例如首先显示最高的条,然后显示第二高的条等。
说,我有产品和销售数据:
> Product <- c("Orange", "Mango", "Apple")
> Sale <- c(28, 50, 21)
> data <- data.frame(Product, Sale)
> plot_ly(data, x = ~Product, y = ~Sale, type = 'bar')
这向我显示了顺序为Apple, Mango & Orange
. 我需要的是订单:Mango, Orange & Apple
。这可能吗 ?
解决方案
您必须以正确的顺序设置因子水平。在您的情况下,您可以按销售订购 data.frame,然后设置因子水平,因为它们以当前形式显示:
library(tidyverse)
Product <- c("Orange", "Mango", "Apple")
Sale <- c(28, 50, 21)
data <- data.frame(Product, Sale) %>%
arrange(-Sale) %>%
mutate(Product = fct_inorder(Product))
plot_ly(data, x = ~Product, y = ~Sale, type = 'bar')
相关函数fct_inorder()
来自forcats包。
推荐阅读
- mysql - SQL中按年份排序
- java - 按钮不显示日志或吐司
- apache-flink - Flink:仅在会话窗口结束时计算
- html - 使用 rem 声明的标题边距的参考属性是什么?
- mongodb - MongoDB:在嵌套数组中更新
- android - 使用 Flutter 执行任务 ':app:processReleaseResources' image_picker 失败
- java - 包 org.junit 不存在 Java Netbeans
- bash - 这个 bash 脚本中的两颗星在做什么?只是否定?
- python - 跨多个 GPU 分布 Keras 模型
- java - 四胜玩家对电脑