Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何按年份划分变量的可用性?_R_Plot_Bar Chart_Availability - Fatal编程技术网

R 如何按年份划分变量的可用性?

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,但这不是我

那么2013年A组的积分应该是零,2014年A组的积分应该是零


您可以使用无范围的geom_errorbar(geom_errorbarh表示水平)。然后只需complete.cases(或
!is.na(df$value)
)的子集

库(ggplot2)
种子(10)

年份请不要使用我看到的df,谢谢你的提醒。y
ggplot(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))