表示我的图表
ggplot(data=data, x=x, y=y, fill=factor(c)+ geom_path()+geom_errorbar()+ geom_point()
我想使用
绘制y.axis反向图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))
也不起作用。
我确信必须有一种方法,而且像往常一样,我想它很简单......一旦你知道。
我希望有人知道如何解决这个问题。
亲切的问候
答案 0 :(得分:2)
图表的每个美学属性(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")
)
答案 1 :(得分:0)
如果您想保留 scale_y_continuous()
以便更轻松地输入参数,可以通过设置 scale_y_reverse()
参数来使用它代替 trans
:
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")
)