簡體   English   中英

使用ggplot2可視化聚合數據

[英]Visualize aggregate data using ggplot2

我有一些要使用ggplot2可視化的聚合數據,我現在正在尋找一種繪制聚合數據的智能快捷方式?

我的數據看起來像這樣,(我目前只有df2這樣的數據)

df <- data.frame(cyl = mtcars[,2])
(df2 <- t(table(df$cyl)))
      4  6  8
[1,] 11  7 14

並且我有興趣創建這樣的繪圖(請參閱下文,了解用於創建此繪圖的code

geom_bar匯總數據

require(ggplot2)
df <- data.frame(cyl = mtcars[,2])
df$cyl2  <- ifelse(df$cyl > 4, c('Treatment'), c('Control'))
# hline.data <- data.frame(cyl2 = c('Treatment', 'Control'), cyl = c(10, 2))

c <- ggplot(df, aes(factor(cyl)))
c + geom_bar(fill="white", colour="darkgreen", alpha=0.5) + facet_grid(. ~ cyl2, scales = "free", space = "free") + theme(axis.title.x  = element_blank(), axis.title.y  = element_blank(), axis.ticks.x = element_blank(), legend.position = "none") + scale_y_continuous(breaks=c(4, 6, 8), labels=c("Minimal","Mild", "Moderate")) + scale_x_discrete(breaks=c(6,8,4), labels=c("Treat 1", "Treat 2", "Control")) 

對於到現在為止做到這一點的人,還有一個額外的問題。 是否可以使scale_y_continuousbreaks=在兩個方面不同? 還是添加geom_hline並在邊距中添加一些文本是更好的策略? 似乎增加邊距非常棘手,我將不得不覆蓋像thisthis這樣的裁剪。

基本上,您只需要將匯總數據放入數據框,然后添加組標簽即可:

df <- data.frame(cyl = mtcars[,2])
(df2 <- t(table(df$cyl)))
# Assume you know the group labels
df2 <- data.frame(val=df2[1, ], label=c("Control", "Treat1", "Treat2"))
df2$cyl2 <- c("Control", "Treatment", "Treatment")

ggplot(df2, aes(label, val)) +
geom_bar(fill="white", colour="darkgreen", alpha=0.5, stat="identity") +
  facet_grid(. ~ cyl2, scales = "free", space = "free") +
  theme(axis.title.x  = element_blank(), axis.title.y  = element_blank(),
        axis.ticks.x = element_blank(), legend.position = "none") +
  scale_y_continuous(breaks=c(4, 6, 8), labels=c("Minimal","Mild", "Moderate")) +
  scale_x_discrete(breaks=c(6,8,4), labels=c("Treat 1", "Treat 2", "Control"))

暫無
暫無

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

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