2012-07-20 174 views
2

我使用GGPLOT2来绘制出geom_ribbon的礼貌上限和下限一个很好的线图 - 见下:自定义y轴标签在GGPLOT2与数转换坐标

ggplot(data = inflow, aes(x = tt, y = inflow.mean)) + geom_line(size = 1) + 
geom_ribbon(eb, alpha = 0.5) + coord_trans(y = "log") 

可能有人请指教我怎么能让y轴标签看起来更漂亮?

我想表明:0, 1, 10, 100

注:在搜索互联网,它会出现,对于geom_ribbon,coord_trans必须使用具有对数刻度。

+1

您不提供您的问题的工作示例,也不是说明了缺乏工作示例的图片。但无论如何:'coord_trans(y =“log10”)'如何解决?或'scale_y_log10()'而不是coord_trans?还要注意:“转换尺度和转换坐标系的不同之处在于尺度转换发生在统计之前,并在之后进行坐标转换。” (来自coord_trans文档)。 – ROLO 2012-07-20 10:19:01

+0

你有看看[这个答案](http://stackoverflow.com/a/9223257/893243?)。你也可以用'log(inflow.mean)'包装'inflow.mean'。如果这不能解决您的问题,您将不得不提供有关您的数据的更多信息。 – 2012-07-20 10:25:40

+0

谢谢大家。我从那以后找到了一个有效的解决方案。 Jase_ - 我按照你的建议封装了我的变量,并使用我自己的包装的y轴标签:lab < - log(c(0.01,1.01,5.01,10.01,20.01,50.01)) names < - c(0,1,5, (data = inflow,aes(x = tt,y = inflow.mean))+ geom_line(size = 1)+ geom_ribbon(eb,alpha = 0.5)+ scale_y_continuous(breaks = lab,标签=姓名) – mjburns 2012-07-20 11:29:36

回答

1

Jase_ - 我包裹着我的变量如你所说,并用我自己的包裹y轴的标签:

lab <- log(c(0.01, 1.01, 5.01, 10.01, 20.01, 50.01)) 
names <- c(0,1,5,10,20,50) 
ggplot(data = inflow, aes(x = tt, y = inflow.mean)) + 
    geom_line(size = 1) + geom_ribbon(eb, alpha = 0.5) + 
    scale_y_continuous(breaks = lab, labels = names)