我所擁有的是一個資料集,其中包含不同組中的組,如下所示
Year Status Group N
1992 Pre Blue 7
1993 Pre Blue 2
1995 Pre Blue 11
2002 Pre Blue 10
2003 Pre Blue 8
2006 Post Green 7
2007 Post Green 14
2008 Post Green 13
2009 Post Green 9
2010 Post Green 7
2011 Pre Blue 3
2011 Post Green 2
2012 Pre Blue 2
2012 Post Green 4
2013 Pre Blue 5
2013 Post Green 2
2014 Pre Blue 4
2014 Post Green 10
2015 Current Blue 12
2015 Post Green 8
2016 Current Blue 3
2016 Post Green 5
2017 Current Blue 13
2017 Post Green 6
2018 Pre Blue 2
2018 Post Green 7
2019 Pre Blue 9
2019 Post Green 7
我想要做的是在 Y 軸上繪制計數(列 N),在 x 軸上按組繪制年份。
- 藍色組的直方圖被著色為藍色,
- 來自綠色組的直方圖要著色
- 當 Status=Pre 時為灰色,
- 當狀態=當前時為綠色。
- 狀態 = 發布時為黃色
- 在直方圖的每個條形頂部添加一個顯示計數的標簽。
下面這樣的東西[請注意下面這個例子中的顏色與上面提到的附加要求不匹配]。
我可以使用 geom_bar 繪制此圖,但不確定如何將這些不同的計數按組繪制為直方圖,非常感謝任何幫助。
ggplot(df, aes(Year, N))
geom_bar(aes(fill=Group), position="dodge", stat="identity", width=.5)
geom_text(aes(label=N, group=Group), position=position_dodge(width=0.5), vadjust=-0.5)
theme_bw(base_size=18)
ylab('Bedbugs') xlab('Year')

uj5u.com熱心網友回復:
使用您的資料(讓我們稱之為df)和顏色定義,似乎只有藍色和黃色,但大概您有比這更多的資料您可以這樣處理它:
df <- df %>%
mutate(color=case_when(
Group=="Blue"~"Blue",
Group=="Green" & Status=="Pre" ~ "Green/Pre",
Group=="Green" & Status=="Current"~ "Green/Curent",
Group=="Green" & Status=="Post"~ "Yellow"))
colors = c("Blue"="blue","Green/Pre" = "grey","Green/Current" = "green","Yellow" = "yellow")
ggplot(df, aes(Year, N, color=color, fill=color))
geom_bar(position="dodge", stat="identity", width=.5)
geom_text(aes(label=N,group=Group), position=position_dodge(width=0.5), vjust=-0.5, color="black")
scale_color_manual(values=colors)
scale_fill_manual(values=colors)
theme_bw(base_size=18,)
ylab('Count') xlab('BedBugs')
uj5u.com熱心網友回復:
我認為主要問題是直方圖重疊。隨著你得到這個position="identity:bins=10
library(ggplot2)
df %>%
ggplot(aes(x = N, fill = Status))
geom_histogram(position = "identity", alpha = 0.3, bins = 10)
theme_bw()

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/428867.html
