【发布时间】: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参数。