R 如何按年份划分变量的可用性?
那么2013年A组的积分应该是零,2014年A组的积分应该是零R 如何按年份划分变量的可用性?,r,plot,bar-chart,availability,R,Plot,Bar Chart,Availability,那么2013年A组的积分应该是零,2014年A组的积分应该是零 您可以使用无范围的geom_errorbar(geom_errorbarh表示水平)。然后只需complete.cases(或!is.na(df$value))的子集 库(ggplot2) 种子(10) 年份请不要使用我看到的df,谢谢你的提醒。yggplot(df)+几何图形条(aes(x=year,y=value,fill=group),position='dodge',stat='identity')谢谢akrun,但这不是我
您可以使用无范围的geom_errorbar(geom_errorbarh表示水平)。然后只需complete.cases(或
!is.na(df$value)
)的子集
库(ggplot2)
种子(10)
年份请不要使用我看到的df,谢谢你的提醒。yggplot(df)+几何图形条(aes(x=year,y=value,fill=group),position='dodge',stat='identity')
谢谢akrun,但这不是我想要的。价值不重要。我想展示的是每一组在哪一年有可用价值。对不起,我不确定我是否理解。谢谢。我认为我的描述令人困惑,我编辑了我的问题以作一些澄清。总体思路正确吗,但在缺少数据的地方,你想要的不是带分隔符的横线,而是横线?否则我还是不明白。我会说总的想法是正确的。在图形中,可用数据点显示为线段。但想象一下,将它们表示为点,并将这些点连接在同一组中。这些线可能需要连续多年的分组而不间断。这是可能的,但需要对数据做一些准备。但是,制作伪柱状图相当简单。请参阅我的编辑。
year <- c(2000:2014)
group <- c("A","A","A","A","A","A","A","A","A","A","A","A","A","A","A",
"B","B","B","B","B","B","B","B","B","B","B","B","B","B","B",
"C","C","C","C","C","C","C","C","C","C","C","C","C","C","C")
value <- sample(1:5, 45, replace=TRUE)
df <- data.frame(year,group,value)
df$value[df$value==1] <- NA
year group value
1 2000 A NA
2 2001 A 2
3 2002 A 2
...
11 2010 A 2
12 2011 A 3
13 2012 A 5
14 2013 A NA
15 2014 A 3
16 2000 B 2
17 2001 B 3
...
26 2010 B NA
27 2011 B 5
28 2012 B 4
29 2013 B 3
30 2014 B 5
31 2000 C 5
32 2001 C 4
33 2002 C 3
34 2003 C 4
...
44 2013 C 5
45 2014 C 3
2012 A 5
2013 A NA
2014 A 3
library(ggplot2)
set.seed(10)
year <- c(2000:2014)
group <- c("A","A","A","A","A","A","A","A","A","A","A","A","A","A","A",
"B","B","B","B","B","B","B","B","B","B","B","B","B","B","B",
"C","C","C","C","C","C","C","C","C","C","C","C","C","C","C")
value <- sample(1:5, 45, replace=TRUE)
df <- data.frame(year,group,value)
df$value[df$value==1] <- NA
no_na_df <- df[complete.cases(df), ]
ggplot(no_na_df, aes(x=year, y = group)) +
geom_errorbarh(aes(xmax = year, xmin = year), size = 2)
df$group_n <- as.numeric(df$group)
no_na_df <- df[complete.cases(df), ]
ggplot(no_na_df, aes(xmin=year-0.5, xmax=year+0.5, y = group_n)) +
geom_rect(aes(ymin = group_n-0.1, ymax = group_n+0.1)) +
scale_y_discrete(limits = levels(df$group))