微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据另一个向量的级别使一个方面中的行出现?

如何解决如何根据另一个向量的级别使一个方面中的行出现?

目标是在每个构面内从上到下显示“开始时间”增加的“名称”。 A面是错误的;方面 B 是正确的。

library(tidyverse)
my_tribble <- tribble(
  ~name,~order.x,~startTime,~endTime,~order.y,~endTime.y,~diff,~area,"unit1","dump",1,"wait",2,"A","unit3",5,7,9,4,"unit4",8,10,"B","unit2",17,20,23,6,"B"
)

ggplot(my_tribble) +
  geom_linerange(aes(ymin = startTime,ymax = endTime.y,x = name),position = position_dodge(width = 0.2),size = 2) +
  facet_grid(area ~ .,scales = "free_y") +
  coord_flip() +
  scale_x_reordered() +
  scale_y_continuous(expand = c(0,0))

enter image description here

解决方法

my_tribble$name <- factor(my_tribble$name,levels = my_tribble$name[order(-my_tribble$startTime)])
ggplot(my_tribble) +
  geom_linerange(aes(ymin = startTime,ymax = endTime.y,x = name),position = position_dodge(width = 0.2),size = 2) +
  facet_grid(area ~ .,scales = "free_y") +
  coord_flip() +
  scale_y_continuous(expand = c(0,0))

ggplot2,reordered factors

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。