Re: [問題] 想畫多組XY折線圖,X數值和長度都不同

看板R_Language作者 (玻璃做的大叔)時間2年前 (2021/06/02 23:55), 編輯推噓1(102)
留言3則, 1人參與, 2年前最新討論串2/2 (看更多)
: 推 andrew43: 建議先melt成 long table,一列一個觀測,有一個病人多 05/26 22:56 : → andrew43: 列。 05/26 22:56 : → andrew43: 每一個病人多列。 05/26 22:57 : → andrew43: 之後ggplot,並facet_warp(vars(病人id)) 05/26 22:59 : → andrew43: facet可以指定scales 05/26 23:00 : 推 locka: 推A大,補充一下ggplot的哲學就是把資料整理成long table~ 05/27 03:24 : 推 locka: (是說如果病人id很多個,分組畫出來的圖會很擠很擠喔,慎用 05/27 03:24 : 推 locka: ) 05/27 03:24 抱歉我發現我沒有講清楚,我是要畫在同一張圖,不過根據facet的功能,比較像是 把許多小圖組合成一張大圖,像是論文的fig.1A, fig.1B, fig.1C那樣,而我想要 的是: https://imgur.com/a/zQxKbg9 這種的, 紅線有到40天,綠線不到20天;紅線20天前只有5~6點,藍線超過10點以上。 然後要合再一起畫圖。 我當時電腦因為不明原因無法安裝ggplot2,後來用plot + lines,用迴圈搞出 上面那張圖出來, plot(analysisArray[testGroup[i],1,], analysisArray[testGroup[i],Y+1,], xlim = range(analysisArray[,1,],na.rm = TRUE), ylim = range(analysisArray[,Y+1,],na.rm = TRUE), xlab=names(MySheet)[repPos], ylab=names(MySheet)[repPos+Y], pch=16, cex=1, type = "b",col=colors[i] , main=paste("手術組", titleName[Y])) for(i in 2:length(testGroup)){ lines(analysisArray[testGroup[i],1,], analysisArray[testGroup[i],Y+1,], pch=16, cex=1, type = "b",col=colors[i]) } 另外有鄉民網友提供ggplot2的解 ggplot() + geom_line(data=p1, aes(x=dates, y=val, color="p1")) + geom_point(data=p1, aes(dates,val), color="red") + geom_line(data=p2, aes(x=dates, y=val, color="p2")) + geom_point(data=p2, aes(dates,val), color="darkcyan") + scale_x_datetime(breaks=unique(combine(dates1, dates2)), date_labels = '%m/%d') + theme(axis.text.x = element_text(size = 10, vjust = 0.5, hjust = 0.5, angle = 90)) 以上,回報目前的成果。謝謝各位的幫忙! -- 起初,他們追殺共產主義者,我沒有說話,因為我不是共產主義者; 接著,他們追殺猶太人,我沒有說話,因為我不是猶太人; 後來,他們追殺工會成員,我沒有說話,因為我不是工會成員; 此後,他們追殺天主教徒,我沒有說話,因為我是新教教徒; 最後,他們奔我而來,卻再也沒有人站起來為我說話了。 《First They Came(他們首次來時)》,Martin Niemoller牧師(1892-1984) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.75.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1622649329.A.EF3.html

06/03 10:58, 2年前 , 1F
基本上還是要把資料用成long table 不同顏色的組別資料
06/03 10:58, 1F

06/03 11:00, 2年前 , 2F
就在資料上給予一個組別變數比如grp ggplot(aes(x=time,
06/03 11:00, 2F

06/03 11:01, 2年前 , 3F
y=value,colour=grp), data=dt) 可以畫出類似你的範例圖
06/03 11:01, 3F
文章代碼(AID): #1Wjwdnxp (R_Language)
文章代碼(AID): #1Wjwdnxp (R_Language)