我的图形
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")
)