【问题标题】:R incorrect y-axis in ggplots geom_bar()R ggplots geom_bar() 中的 y 轴不正确
【发布时间】:2017-06-07 20:32:07
【问题描述】:

我有一个包含 Wikipedia 编辑的数据框,其中包含有关用户编辑次数(第一次编辑、第二次编辑等)、进行编辑时的时间戳以及添加了多少单词的信息。

在实际数据集中,每个用户最多可以进行 20.000 次编辑,而在某些编辑中,它们加起来多达 30.000 个单词。

但是,here is a downloadable small example 数据集可以说明我的问题。标题如下所示:

我正在尝试绘制添加的单词在编辑进度和时间上的分布。如果我使用常规的 R 条形图,我会像预期的那样工作:

barplot(UserFrame3$NoOfAdds,UserFrame3$EditNo)

但我想在 ggplot 中实现更好的图形和更多的自定义选项。

如果我将其绘制为散点图,我会得到相同的结果:

ggplot(data = UserFrame3, aes(x = UserFrame3$EditNo, y = UserFrame3$NoOfAdds)) + geom_point(size = 0.1)

折线图也一样:

ggplot(data = UserFrame3, aes(x = UserFrame3$EditNo, y = UserFrame3$NoOfAdds)) +geom_line(size = 0.1)

但是当我尝试在 ggplot 中将其绘制为条形图时,我得到了以下结果:

ggplot(data = UserFrame3, aes(x = UserFrame3$EditNo, y = UserFrame3$NoOfAdds)) + geom_bar(stat = "identity", position = "dodge")

X 轴上似乎有更多的孔,并且最大值远不及应有的位置 (y = 317)。

我怀疑 ggplot 以某种方式对条形进行分组并使用平均值而不是实际值,尽管有“dodge”参数?我怎样才能避免这种情况?以及如何在没有 ggplot 对多次编辑进行平均的情况下将时间进展绘制为条形图?

【问题讨论】:

  • 您能否使用dput() 显示数据而不是提供链接。这个例子适用于我mtcars %>% ggplot(aes(mpg, disp))+ geom_point() + geom_line() + geom_bar(stat="identity", position = "dodge")
  • 那将是一个很长的字符串,我还是应该把它贴在这里吗?
  • 我建议尽量减少数据,以便人们能够理解问题,但不要让您的问题过多;)
  • aes 中你应该使用EditNo 而不是UserFrame3$EditNo
  • @JuKo,使用$ 不仅是多余的,还会导致严重的问题,例如刻面。就问题而言,您需要一个可重现的示例在问题本身中。不知道为什么要在那里设置 position 参数。

标签: r ggplot2 geom-bar


【解决方案1】:

与线条相比,您应该期望使用条形的 x 轴“孔”更多。线条将零值连接在一起,而条则没有。

我使用geom_col 下载您的数据,看起来和预期的一样:

UserFrame3 %>% 
  ggplot(aes(EditNo, NoOfAdds)) + geom_col()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 2015-03-18
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多