使用scale_x_reverse时不会显示小的中断

时间:2012-10-09 10:20:42

标签: r graph ggplot2

当我使用便捷函数minor_breaks时,我无法获得scale_x_reverse参数做任何事情

df <- data.frame(x=c(10,20,40,90,300),y=c(1,2,7,2,7)) #define data frame

# scale_x_continuous uses minor_breaks just like it should
ggplot(df, aes(x,y)) + geom_line() +
    scale_x_continuous(breaks=c(10,50,100,150,200,250,300), minor_breaks=10:300)

# scale_x_reverse seems to ignore the minor_breaks option
ggplot(df, aes(x,y)) + geom_line() + 
    scale_x_reverse(breaks=c(10,50,100,150,200,250,300), minor_breaks=10:300)

有什么方法可以反转X轴,但仍然可以自定义次要休息时间吗?

1 个答案:

答案 0 :(得分:1)

这闻起来像个臭虫。 scale_x_reverse只是scale_x_continuous trans = reverse_trans()的包装器。现在,reverse_trans通过简单地定义一个反转每个值的符号的函数来完成其工作:function(x) -x

所以在预感中,我尝试了这个:

ggplot(df, aes(x,y)) + 
    geom_line() + 
    scale_x_reverse(breaks=c(10,50,100,150,200,250,300), 
                    minor_breaks= -c(25,75,125))

可能很容易解决。您可以考虑在github上提交错误报告。