簡體   English   中英

R將箱形圖與條形圖結合使用有效,但反之則不行

[英]R combining a box plot with a bar plot works but not the other way around

我正在嘗試在R中合並兩個圖。我想要一個條形圖,在第二個步驟中,我要繪制一個箱形圖以覆蓋這兩個信息。

如果我先繪制箱形圖,然后繪制條形圖,則此方法有效,但是對於覆蓋其后半個框的條形來說,這看起來很難看。 解決這兩個問題是顯而易見的解決方案,但是由於將Discrete value supplied to continuous scale而失敗了。 我知道alpha參數可以增加透明度,但是我真的很想了解如果交換繪圖順序會為什么會發生此錯誤。

這是MWE:

library(ggplot2) 
a_box <- matrix(c(1.3, 2.4, 5.2, 2.3, 4.2,2.1), ncol=2, nrow=3)
a_box <- data.frame(a_box)
a_box <- stack(a_box)
# bar plot should plot the mean values
# I add 'index' values for each mean to the vector
a <- matrix(c(2.9, 2.8, 1.0, 2.0), nrow=2, ncol=2)
a <- data.frame(a)
colnames(a) <- c('values', 'index')
# Combining both plots - first box then bar works
ggplot() + geom_boxplot(data=a_box, aes(ind, values)) + geom_bar(data=a, aes(a$index, a$values), stat='identity')
# the other way around not - 'Discrete value supplied to continuous scale' - why?
ggplot() +  geom_bar(data=a, aes(a$index, a$values), stat='identity', alpha=0.3) + geom_boxplot(data=a_box, aes(ind, values))

我該怎么做才能按期望的順序進行這項工作?

您正在嘗試繪制x軸不同的兩個數據集。 一個離散( a_box )和一個“連續”( a )。 為了克服這個問題,您可以將x軸從( a_box )映射到geom_barplot調用,它將正常工作。

ggplot() +  geom_bar(data=a, aes(unique(a_box$ind), a$values), stat='identity', alpha=0.3) + geom_boxplot(data=a_box, aes(ind, values))

暫無
暫無

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

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