2016-04-26 83 views
1

我有一個數據包含3種不同的疾病狀態和幾種結果。疾病位於第一欄,結果以第二欄命名。請參閱附件中的數據。在ggplot2中產生水平切跡圖

Disease A B C D E F G H 
X 0.001527882 0.003459413 0.000648574 0.002127627 0.000847073 0.002628663 0.00000156 0.001697012 
X 0.001848781 0.003641997 0.000876108 0.0024079 0.001061678 0.00253612 0.00000191 0.001761288 
X 0.004304498 0.005887634 0.003197471 0.003581047 0.002125073 0.003125686 0.000025 0.001974246 
X 0.006675181 0.00784345 0.004085157 0.005653283 0.003118116 0.001897106 0.000011 0.004055166 
X 0.006206229 0.007407223 0.003775627 0.005398474 0.002903612 0.001901196 0.0000138 0.003867669 
X 0.008291067 0.010172375 0.005316099 0.007294589 0.003807516 0.002711993 0.00000431 0.004335257 
X 0.00405819 0.006540146 0.002686623 0.004762546 0.00163977 0.003309515 0.00000789 0.001957311 
X 0.0067902 0.010219971 0.004727677 0.0070145 0.002995965 0.005784826 0 0.003331767 
X 0.005495986 0.008415487 0.003807673 0.00552374 0.002361458 0.005504102 0.000000805 0.002746723 
X 0.005209265 0.008041805 0.003572746 0.005247395 0.002243573 0.005357235 0.0000016 0.002665558 
X 0.007467104 0.010856364 0.004896178 0.008258422 0.003086705 0.00341522 0.00000285 0.002702047 
Y 0.007670113 0.00940323 0.006406508 0.007372615 0.003627189 0.001986754 0.0000465 0.002585564 
Y 0.004686043 0.00726605 0.003055345 0.005017251 0.002003367 0.003900496 0.000000476 0.002309116 
Y 0.004177442 0.006972389 0.002680084 0.00474762 0.001885973 0.004097005 0.000000662 0.002295276 
Y 0.004475911 0.006846188 0.003625686 0.004221453 0.002829967 0.002831975 0.00000357 0.001636054 
Y 0.005848798 0.008090652 0.00340937 0.006071063 0.003104326 0.003234079 0.000000615 0.003722661 
Y 0.006518662 0.009792935 0.004230156 0.007402922 0.002677034 0.002810624 0.000000494 0.002678868 
Y 0.005428432 0.008254325 0.003481542 0.006025152 0.002306644 0.002731699 0.0000341 0.002559538 
Y 0.006138387 0.007997736 0.003884782 0.005445355 0.003097547 0.003177233 0.0000197 0.003667534 
Y 0.005268127 0.006967856 0.003245438 0.004784031 0.002785673 0.003147425 0.0000161 0.003360895 
Y 0.006824798 0.008643139 0.00441859 0.006040691 0.003519989 0.003252144 0.000.003866648 
Y 0.006756669 0.008882524 0.004407434 0.006087051 0.003316964 0.0038456 0.00000907 0.003794542 
Y 0.006766808 0.008916508 0.004425926 0.006133224 0.003349647 0.00381514 0.0000122 0.003794175 
Y 0.005288403 0.006397465 0.003993784 0.004615067 0.002988219 0.00219577 0.000224752 0.002179541 
Y 0.007064576 0.010323695 0.00479257 0.007002344 0.003084699 0.005404821 0.00000601 0.003126432 
Y 0.004992499 0.007830614 0.003199636 0.005100254 0.002196152 0.004706792 0.0000291 0.002574521 
Y 0.007285894 0.009257734 0.004756352 0.006956334 0.003740338 0.002541691 0.0000017 0.003785755 
Y 0.007284548 0.009060781 0.004695172 0.006907381 0.003923092 0.00237505 0.00000764 0.004050348 
Y 0.00502541 0.006910243 0.00368707 0.004952021 0.003261628 0.002949114 0.000131343 0.002590292 
Y 0.005605946 0.008788954 0.003741203 0.006023171 0.002442795 0.004465909 0.000000421 0.002661231 
Y 0.003618486 0.006465109 0.002340945 0.004184876 0.001724263 0.003914174 0.00000106 0.002229038 
Y 0.004858636 0.008062734 0.00315832 0.005736985 0.002185119 0.003723115 0.00000306 0.002509759 
Z 0.005107876 0.008322495 0.003352967 0.005921168 0.002309924 0.003758071 0.00000206 0.002624568 
Z 0.003509392 0.005521583 0.002485114 0.003173729 0.00126778 0.00355057 0.0000431 0.001887588 
Z 0.003865434 0.005767412 0.002810001 0.003372551 0.001460574 0.003648029 0.0000457 0.001909999 
Z 0.005177201 0.007826825 0.003958008 0.004716213 0.002546243 0.00398816 0.00000473 0.00242293 
Z 0.006601694 0.009499528 0.004681797 0.00669723 0.003016417 0.004643877 0.00000777 0.003081804 

然後,我用向下跌破創建一個數字,你可以在附件(Figure1)見。

library(reshape2) 
library(ggplot) 
DvsO = read.table("Disease_vs_Outcome.txt", header = TRUE) 
DvsO <- data.frame(DvsO) 
DvsO <- melt(DvsO, id.vars="Disease") 


ggplot(DvsO, aes(Disease, value, fill=Disease)) + 
    geom_violin() + geom_boxplot(width=.5) + facet_wrap(~variable,scales="free") + scale_fill_manual(values=c("#CC6666", "#00CC00","#3399FF")) 

但是,我想生成一個數字作爲這一個(Figure2)。基本上,我想將數字轉換爲水平,並將所有數據放在一個面板中。

如果你能幫我弄清楚,我會很高興嗎?非常感謝你提前。

最良好的祝願, Bahti

回答

0

您可以coord_flip翻轉盒(但不能使用免費的尺度與)。我會建議保留這些方面,但改爲使用facet_grid。製作一個面板要困難得多。如果需要,您可以調整構面的外觀。

(你也許可以廢除該圖中的Y軸)。

ggplot(DvsO, aes(Disease, value, fill=Disease)) + 
    geom_violin() + 
    geom_boxplot(width=.5) + 
    facet_grid(variable~.) + 
    scale_fill_manual(values=c("#CC6666", "#00CC00","#3399FF")) + 
    coord_flip() + 
    theme_bw() + 
    theme(panel.margin = unit(0, "lines")) 

enter image description here

編輯:

並與點(你也可以看看geom_dotplot):

ggplot(DvsO, aes(Disease, value, fill = Disease)) + 
    geom_violin(color = NA, alpha = 0.8) + 
    geom_point(position = position_jitter(w = 0.5, h = 0), alpha = 0.7) + 
    facet_grid(variable~.) + 
    scale_fill_manual(values=c("#CC6666", "#00CC00","#3399FF")) + 
    coord_flip() + 
    theme_bw() + 
    theme(panel.margin = unit(0, "lines"), 
     axis.text.y = element_blank(), 
     axis.ticks.y = element_blank(), 
     axis.title.y = element_blank()) 

enter image description here

+0

Hey Axeman!非常感謝!它令人驚歎。我感謝您的幫助!乾杯,巴蒂! – Lothlorian

+0

我能再問一件嗎?如果我想將所有的值作爲一個點加入到每個小提琴情節中,那可能嗎?我們可以從內部刪除盒形圖並在小提琴圖上添加數值。這很容易做到嗎?非常感謝。 – Lothlorian

+0

是的,不是很困難。 – Axeman