2017-05-12 18 views
0

鑑於我有兩個數據幀,我該如何繪製此圖。我知道我可以扭轉y尺度,但無法以這種方式獲得正確的情節。具有兩個數據幀(一個正數和另一個負數)的放樣直方圖R

#Create dataframe 1 
patientA <- c("treatment1", "treatment2", "treatment3", "treatment4", "treatment5", "treatment6", "treatment7") 
x1.value <- as.numeric(c(1, 34, 48, 24, 10, 9, 18)) 
df.1 <- data.frame(patientA, x1.value) 

#Create dataframe 2 
patientB <- c("treatment1", "treatment2", "treatment3", "treatment4", "treatment5", "treatment6", "treatment7") 
x2.value <- as.numeric(c(1, 34, 48, 24, 10, 9, 18)) 
df.2 <- data.frame(patientA, x2.value) 

我現在的腳本,請使用以下方法

bp_1 <- ggplot(new.df.1, aes(x=Treatment ,y=Number,fill=substring(Factors,1)))+ 
    geom_histogram(stat="identity",position="dodge") + scale_y_continuous(labels = scales::comma) 
bp_2 <- ggplot(new.df.2, aes(x=Treatment ,y=Number,fill=substring(Factors,1)))+ 
    geom_histogram(stat="identity",position="dodge") + scale_y_continuous(labels = scales::comma) 

,但我可以在此做一個單獨的地塊。下面顯示了所需的圖像。任何幫助深表感謝。

enter image description here

+0

什麼是'new.df.1'和'new.df.2'? – user3640617

+0

new.df.1和new.df.2等同於示例中給出的df.1和df.2。抱歉,我只是創建了一個虛擬數據框來陳述明顯的問題。我的實際數據集要大得多。 – user44552

+0

我同意直方圖不具有負值。我只是想表現出負的y尺度,因爲在生物學方面,df.1上調,df.2下調;因此想展示一個可以像我這樣的傻瓜功能表現的人物。我想我想要的是geom_bar。 – user44552

回答

0

你可以做這樣的事情......

df <- merge(df.1,df.2,by.x = "patientA",by.y = "patientB") 
bp_1 <- ggplot(df) + 
     geom_bar(aes(x=patientA,y=x1.value),fill="blue",stat="identity",position="dodge") + 
     geom_bar(aes(x=patientA,y=-x2.value),fill="red",stat="identity",position="dodge") 
+0

謝謝,這個工程。 – user44552

相關問題