我想為我的所有數字列生成帶有密度線的直方圖,并用另一列對它們進行分面。
以
第一個答案: 這是一個可能的解決方案:
- 我們以長格式提供資料,使用
pivot_longer. 然后像你一樣應用fill= name和 facet_wrap :
library(tidyverse)
iris %>%
pivot_longer(-Species) %>%
ggplot(aes(x = value, fill=name))
geom_histogram()
geom_density(colour = "blue", size = 1)
facet_wrap(~ Species, scales = "free")

uj5u.com熱心網友回復:
我找到了 這個問題的有用答案。我需要使用aes_string. 這就是我原來的問題所期望的效果:
for (i in colnames(subset(iris, select = -`Species`))) {
plot= ggplot(subset(iris, select = -`Species`), aes_string(x= i))
geom_histogram(aes(y = ..density..))
geom_density(colour = "blue", size = 1)
facet_wrap(~ iris$Species, scales = "free")
print(plot)
}
為每個變數生成單獨的圖。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532060.html
