簡體   English   中英

一個R ggplot2圖中的多個數據點

[英]Multiple data points in one R ggplot2 plot

我有兩組數據點,它們都與同一主軸有關,但在次軸上有所不同。 是否有某種方法可以使用ggplot2在R中將它們繪制在一起?

我正在尋找的東西基本上是這樣的:

4+           |
 | x       . + 220
3+     . .   |
 |   x       |
2+   .       + 210
 |     x     |
1+ .     x x |
 |           + 200
0+-+-+-+-+-+-+
     time   

   . temperatur
   x car sale

(這只是可能數據的一個例子)

Shane的答案,“你不能在ggplot2中”,如果不完整,是正確的。 可以說,這不是你想要做的事情。 你如何決定如何縮放Y軸? 你想要線條的方法是一樣的嗎? 范圍? 沒有原則性的做法,而且很容易讓結果看起來像你想要的樣子。 相反,您可能想要做的事情,特別是在這樣的時間序列中,是規范兩行數據,以便在特定的t值,通常為min(t),Y1 = Y2 = 100.這是一個例子我退出了Bonddad博客 (不使用ggplot2,這就是為什么它很難看!)但你可以干凈地告訴兩條線的相對增加和減少,這兩條線具有完全不同的基礎尺度。

替代文字

我不是這方面的專家,但我的理解是格子可以做到這一點,但ggplot2不行。 有關次軸圖的示例, 請參閱此精益博客文章 另見哈德利對這個問題的回答

這是一個如何在格子中進行的例子(來自Gabor Grothendieck ):

library(lattice)
library(grid)  # needed for grid.text

# data

Lines.raw <- "Date  Fo  Co
6/27/2007  57.1  13.9
6/28/2007  57.7  14.3
6/29/2007  57.8  14.3
6/30/2007  57  13.9
7/1/2007  57.1  13.9
7/2/2007  57.2  14.0
7/3/2007  57.3  14.1
7/4/2007  57.6  14.2
7/5/2007  58  14.4
7/6/2007  58.1  14.5
7/7/2007  58.2  14.6
7/8/2007  58.4  14.7
7/9/2007    58.7 14.8
"

# in reality next stmt would be DF <- read.table("myfile.dat", header = TRUE)
DF <- read.table(textConnection(Lines.raw), header = TRUE)
DF$Date <- as.Date(DF$Date, "%m/%d/%Y")

par.settings <- list(
        layout.widths = list(left.padding = 10, right.padding = 10),
        layout.heights = list(bottom.padding = 10, top.padding = 10)
)

xyplot(Co ~ Date, DF, default.scales = list(y = list(relation = "free")),
        ylab = "C", par.settings = par.settings)

trellis.focus("panel", 1, 1, clip.off = TRUE)
  pr <- pretty(DF$Fo)
  at <- 5/9 * (pr - 32)
  panel.axis("right", at = at, lab = pr, outside = TRUE)
  grid.text("F", x = 1.1, rot = 90) # right y axis label
trellis.unfocus()

暫無
暫無

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

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