r语言 - ggplot2轴:如何将scale_x_reverse与scale_x_continous相结合



我的图形

 ggplot(data=data, x=x, y=y, fill=factor(c)+ geom_path()+geom_errorbar()+   geom_point() 

我想使用

绘制y.轴反向
scale_y_reverse()

定义其极限,断开,标签和扩展。

通常我使用:

scale_y_continuous(limits=c(x,y), breaks=c(x,y,z), labels=c(x,y,z), expand(x,y))

好吧,显然

scale_y_reverse()

和 scale_y_continous()以某种方式被认为是同一代码!?当我遇到错误时,说:

"'y'的比例已经存在。添加另一个'y'的比例,它将替换现有规模。"

我找到了一篇文章,说可以组合两个命令,因此我尝试了:

scale_y_reverse(limits=c(x,y), breaks=c(x,y,z), labels=c(x,y,z), expand(x,y))

它也不起作用。

我敢肯定必须有一种方法,而且像往常一样,这很简单..一旦您知道。

我希望有人知道如何解决这个问题。

善意

图形的每个美学属性(y轴,x轴,颜色等)仅接受单个比例。如果指定2个量表,例如scale_y_continuous()随后是scale_y_reverse(),第一刻度被覆盖。

您可以在scale_y_reverse()中指定限制,中断和标签,只省略scale_y_continuous()

示例:

d <- data.frame(a = 1:10, b = 10:1)
ggplot(d, aes(x = a, y = b)) +
  geom_point() +
  scale_y_reverse(
    limits = c(15, 0), 
    breaks = seq(15, 0, by = -3),
    labels = c("hi", "there", "nice", "to", "meet", "you")
    )

如果要保留scale_y_continuous()以获取更简单的参数键入,则可以通过设置trans参数:

来使用它而不是scale_y_reverse()
d <- data.frame(a = 1:10, b = 10:1)
ggplot(d, aes(x = a, y = b)) +
  geom_point() +
  scale_y_continuous(
    trans = scales::reverse_trans(), # <- this one is your solution :)
    limits = c(15, 0), 
    breaks = seq(15, 0, by = -3),
    labels = c("hi", "there", "nice", "to", "meet", "you")
    )

最新更新