簡體   English   中英

兩個y軸用於相同的數據-但比例不同

[英]Two y axes for the same data - but different scale

我創建了一個圖形,以線性單位表示數據,但以對數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 * log10(x),因此圖上的數據分布應該相同-因為dB是對數的。 基本上,我想使用兩個單位在同一圖上顯示dame數據:線性(但以對數標度表示-已在代碼中顯示)和dB。 可能嗎? 下面的圖片(很糟糕)提出了我的想法。

在此處輸入圖片說明

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

您可以添加第二個軸,同時使數據點保持原始比例,如下所示:

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(.))

如果要與先前的y軸以相同的比例添加第二個y軸,則可以這樣實現: scale_y_log10(sec_axis = sec_axis(~.*, name="dB")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM