2012-06-13 220 views
4

我有使用下面的數據創建一個dotchart一個問題在dotchart點尺寸():如何改變中的R

Patient ID Day Dosage of Drug (mg) 
    1552  1  .3 
    1552  7  .8 
    1552  14 1.2 
    1663  1  .2 
    1663  7  .7 
    1663  18 1.4 

我可以與x軸爲「日」創建dotchart和y作爲每個患者的軸,因此對於患者ID 1552,在第1,7和14天有三個點。那裏沒有問題。但是現在我想這樣做,以便點的大小與當天服用的劑量成比例,以便第14天的點在同一患者ID線上大於7和1。有什麼辦法可以做到這一點?

我知道dotchart()函數有一個可修改的cex元素,它可以改變Y軸的字體/點的大小,但它是這樣統一的。根據劑量數據,是否有任何單獨繪製每個點的方法,並且每次都將點大小設置爲不同的大小?

+0

當你通過一個載體來CEX會發生什麼? –

回答

1

我想創建這樣一個圖表使用GGPLOT2:

ggplot(aes(x = day, y = patient, size = dosage), data = df) + 
     geom_point() 

如果我假設與數據data.frame被稱爲df,而且它包含名爲天,病人和劑量列。

+0

哦,男人,這很好。在看了一個ggplot教程並且用geom_point(aes(size = dosage))後,我略微修改了ggplot。非常感謝! – JohnLu

+1

注意將答案作爲正確答案?這樣人們可以獲得一些聲譽,每個人都可以看到你的問題得到解決。 –

1

如果使用ggplot2包,你可以做這樣的:

dat <- read.table(textConnection("ID Day Dose 
    1552  1  .3 
    1552  7  .8 
    1552  14 1.2 
    1663  1  .2 
    1663  7  .7 
    1663  18 1.4"), header=TRUE)  

require(ggplot2) 
p <- ggplot(dat, aes(factor(Day), factor(ID))) 
p + geom_dotplot(binaxis = "y", stackdir = "center", binpositions="all") + 
geom_point(aes(size=Dose)) 

enter image description here