首页 文章

在geom_freqpoly线下填充区域的最简单方法是什么?

提问于
浏览
8

x轴是时间间隔的时间 . 数据框中有一个间隔列,用于指定每行的时间 . 该列是一个因子,其中每个区间是不同的因子级别 .

使用geom_histogram和geom_freqpoly绘制直方图或直线效果很好,但是我希望有一条线,就像geom_freqpoly提供的那样,填充区域 .

目前我正在使用geom_freqpoly,如下所示:

ggplot(quake.data, aes(interval, fill=tweet.type)) + geom_freqpoly(aes(group = tweet.type, colour = tweet.type)) + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))

plots

我希望有一个填充区域,例如由 geom_density 提供,但没有平滑线:

smoooth

有人提出 geom_area ,有没有办法使用ggplot2生成的统计量,例如..count ..,用于geom_area的y值?或者,计数聚合是否需要在使用ggplot2之前进行?


如答案中所述,geom_area(...,stat =“bin”)是解决方案:

ggplot(quake.data, aes(interval)) + geom_area(aes(y = ..count.., fill = tweet.type, group = tweet.type), stat = "bin") + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))

生产环境 :

desired

4 回答

  • 1

    也许你想要:

    geom_area(aes(y = ..count..), stat = "bin")
    
  • 14

    geom_ribbon 可用于在两行之间生成填充区域,而无需显式构造多边形 . 有很好的文档here .

  • 1

    ggplot(quake.data, aes(interval, fill=tweet.type, group = 1)) + geom_density()

    但我认为这不是一个有意义的图形 .

  • 3

    我瞄准了.2566295_你想要一条线还是一条线 . 您应该查看填充栏的geom_bar . 就像是:

    p <- ggplot(data, aes(x = time, y = count))
    p + geom_bar(stat = "identity")
    

    如果你想在下面填充一条线,那么你应该看看我没有亲自使用过的geom_area但看起来这个结构几乎是一样的 .

    p <- ggplot(data, aes(x = time, y = count))
    p + geom_area()
    

    希望有所帮助 . 提供更多信息,我们可能会更有帮助 .

    实际上我会抛出一个索引,只是数据行并将其用作x,然后使用

    p <- ggplot(data, aes(x = index, y = count))
    p + geom_bar(stat = "identity") + scale_x_continuous("Intervals", 
    breaks = index, labels = intervals)
    

相关问题