但不同尺度 - 对同一数据两个Y轴(Two y axes for the same data - b

2019-10-29 14:32发布

我已经创建以线性单位而是以对数y标尺(下面的代码)呈现数据的曲线图。

ggplot() + 
  geom_point(data=VH_lin, aes(x=VH_lin[,1], y=VH_lin[,2], colour = "green"), size=0.6) +
  scale_y_log10(breaks = c(0,0.01, 0.10, 1.00, 10), limit=c(-0.01,10)) + scale_x_continuous(breaks=c(0, 2000, 4000, 6000, 8000, 10000, 12000)) + 
  xlab("x") + ylab("y") +
  theme(panel.background = element_rect(fill = "white", colour = "grey50")) 

我想用分贝添加第二个Y的比例 - 这是对数单位。 转换数据我要计算10 *日志10(x)的数据,以便对情节的分布应该是相同的 - 如分贝是对数的。 基本上,我想提出使用两个单元相同的情节圣母院数据:线性(但在对数标度呈现 - 已经在代码)和分贝。 可能吗? 下面(很差)的PIC提出了我的想法。

VH_lin数据的实施例:

1 0 0.012729834
2 3.133577295 0.012729834
10 14.75257582 0.013739633
36 59.10725461 0.014644137
41 69.42152155 0.0103109
466 1180.242805 0.011991354
486 1204.63381 0.008985861
520 1256.814223 0.008706877

Answer 1:

您可以添加第二个轴,而在原来的规模相适应的数据点如下:

ggData <- data.frame(x=rnorm(50), y=rnorm(50, mean=1000, sd=50) )
summary(ggData)

ggplot(ggData, aes(x=x, y=y) ) + 
 geom_point() + 
 scale_y_continuous(sec.axis = ~ 10*log10(.))


Answer 2:

如果你想在同规模增加第二y轴与前一个,它可以这样实现的: scale_y_log10(sec_axis = sec_axis(~.*, name="dB")



文章来源: Two y axes for the same data - but different scale
标签: r ggplot2 axis