【问题标题】:R: barplot {base} complete missing integer values on x axisR:条形图 {base} 在 x 轴上完成缺失的整数值
【发布时间】:2017-10-25 18:07:08
【问题描述】:

我有一个每年计数的条形图。我的数据集中缺少 2006 年;但我想在 x 轴上将其显示为 0。我认为这应该可以通过将df$year 转换为factor 并设置因子水平来实现,如下所示:R - how to make barplot plot zeros for missing values over the data range? 但我无法使其工作。

df<-data.frame(year = c(2005,2007,2008, 2009),
               area = c(10,20,30,15))

barplot(df$area)

我不工作的尝试:

barplot(df$area, 
        names.arg = factor(df$year, 
                           levels = 2005:2009))

【问题讨论】:

  • 酷,谢谢! :-D

标签: r


【解决方案1】:

我们可以 merge 使用完整的数据集,将 NA 元素替换为 0,然后执行 barplot

df1 <- merge(data.frame(year = min(df$year):max(df$year)), df, all.x=TRUE)
df1$area[is.na(df1$area)] <- 0
barplot(setNames(df1$area, df1$year))

-输出


这也可以通过tidyverse完成

library(tidyverse)
df %>%
   complete(year = min(year):max(year), fill = list(area = 0)) %>% 
   ggplot(., aes(year, area)) + 
   geom_bar(stat = 'identity') +
   theme_bw()

-输出

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2022-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多