簡體   English   中英

R中的累積圖

[英]Cumulative plot in R

我嘗試為數據的特定列(例如第一列)繪制累積圖(示例):

 1   3
 2   5
 4   9
 8  11
12  17
14  20
16  34
20  40

比我想將此圖與另一個數據的另一個累積圖(例如第二列)重疊,並將其另存為png或jpg圖像。 如果沒有像在具有給定X軸的累積圖中那樣“手動”使用矢量實現,因為如果我有一個非常大的數據集,我將無法做到這一點。

我嘗試以下簡單命令:

A <- read.table("cumul.dat", header=TRUE)

讀取文件,但是現在我希望該文件的特定列的累積圖向下。 該命令是:

cdat1<-cumsum(dat1)

但這是針對我需要從數據數組(cumul.dat)中獲取的特定向量dat1

謝謝

我無法回答您的問題,因此這是我根據得到的關鍵詞得出的黑暗答案:

m <- read.table(text=" 1   3
 2   5
 4   9
 8  11
12  17
14  20
16  34
20  40")

library(ggplot2)

m2 <- stack(m)
qplot(rep(1:nrow(m), 2), values, colour=ind, data=m2, geom="step")

在此處輸入圖片說明

編輯我決定我喜歡這種方法:

library(ggplot2)
library(reshape2)

m$x <- seq_len(nrow(m))
m2 <- melt(m, id='x')
qplot(x, value, colour=variable, data=m2, geom="step")

我不確定事件何時發生以及觀察結果如何。 我假設事件僅發生在1,2,3,4,而各列代表不同組的聲音。 如果是這樣,使用萊迪思我會做

require(lattice)
A<-data.frame(dat1=c(1,2,4,8,12,14,16,20), dat2=c(3,5,9,11,17,20,34,40))
dd<-do.call(make.groups, lapply(A, function(x) {data.frame(x=seq_along(x), y=cumsum(x))}))
xyplot(y~x,dd, groups=which, type="s", auto.key=T)

哪個產生

在此處輸入圖片說明

對於base圖形,可以通過在plot調用中指定type='s'來完成:

matplot(apply(A, 2, cumsum), type='s', xlab='x', ylab='y', las=1)

階梯圖

注意,我在這里使用了matplot ,但是您也可以一次繪制一個序列,第一個使用plot ,第二個使用pointslines plot

我們還可以添加圖例,例如:

legend('topleft', c('Series 1', 'Series 2'), bty='n', lty=c(1, 3), col=1:2)

暫無
暫無

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

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