我正在尝试为3个站点的每个日期的通过次数创建一个条形图。这是我最初的工作:
Test <- read.csv("Test.csv")
head(Test)
str(Test)
> head(Test)
Date Site Passes
1 20111223 Met Mast 10m 8
2 20111224 Met Mast 10m 4
3 20111225 Met Mast 10m 27
4 20111226 Met Mast 10m 4
5 20111227 Met Mast 10m 20
6 20111228 Met Mast 10m 11
> str(Test)
'data.frame': 26 obs. of 3 variables:
$ Date : int 20111223 20111224 20111225 20111226 20111227 20111228 20111229
20111230 20111231 20111223 ...
$ Site : Factor w/ 3 levels "Control","Met Mast 10m",..: 2 2 2 2 2 2 2 2 2 3 ...
$ Passes: int 8 4 27 4 20 11 17 0 41 6 ...
我正在使用ggplot,所以我加载了库并使用qplot:
library(ggplot2)
qplot(Date, data=Test, geom ="bar", position="dodge", fill=Site, binwidth=0.5,
weight = Passes) +
scale_y_continuous("Number of Passes")
我得到了一张完美的图表(抱歉,我无法发布图片),这正是我想要的x轴上的日期,y轴上的通过次数,以及旁边并排绘制的3个因子每个日期都带有一个图例。
我在我的数据子集上测试了我的方法和代码(即只有26个观察结果),以确保它能够正常工作。现在我想为我的所有数据绘制相同的图形,其中包含97个观测值。
问题:
当我运行所有数据的代码时,输出是一个空白图表,带有正确标记的轴和图例。在x轴上,日期格式从usuall 20111223变为20112500,这是非感性的,我不知道为什么。
我已经在这个论坛上阅读了很多关于ggplot2和qplot的问题,但我没有找到任何有类似问题的人。因为我得到了使用少量数据点的情节,我认为它可能是x轴刻度的问题,但我不确定。为什么情节是空白的?
请帮助:)
> dput(Test)
structure(list(Date = c(20111223L, 20111224L, 20111225L, 20111226L,
20111227L, 20111228L, 20111229L, 20111230L, 20111231L, 20120101L,
20120102L, 20120103L, 20120104L, 20120105L, 20120106L, 20120107L,
20120108L, 20120109L, 20120110L, 20120111L, 20120112L, 20120113L,
20120114L, 20120115L, 20120116L, 20120117L, 20120118L, 20120119L,
20120120L, 20120121L, 20120122L, 20120123L, 20120124L, 20120125L,
20120126L, 20120127L, 20111223L, 20111224L, 20111225L, 20111226L,
20111227L, 20111228L, 20111229L, 20111230L, 20111231L, 20120101L,
20120102L, 20120103L, 20120104L, 20120105L, 20120106L, 20120107L,
20120108L, 20120109L, 20120110L, 20120111L, 20120112L, 20120113L,
20120114L, 20120115L, 20120116L, 20120117L, 20120118L, 20120119L,
20120120L, 20120121L, 20120122L, 20120123L, 20120124L, 20120125L,
20120126L, 20120127L, 20111222L, 20111223L, 20111224L, 20111225L,
20111226L, 20111227L, 20111228L, 20111229L, 20111230L, 20111231L,
20120101L, 20120102L, 20120103L, 20120104L, 20120105L, 20120106L,
20120107L, 20120108L, 20120109L, 20120110L, 20120111L, 20120112L,
20120113L, 20120114L, 20120115L), Site = structure(c(2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Control",
"Met Mast 10m", "Met Mast 17m"), class = "factor"), Passes = c(8L,
4L, 27L, 4L, 20L, 11L, 17L, 0L, 41L, 6L, 9L, 29L, 38L, 5L, 38L,
12L, 6L, 14L, 18L, 35L, 36L, 8L, 23L, 25L, 0L, 0L, 0L, 37L, 53L,
59L, 205L, 15L, 2L, 14L, 6L, 6L, 6L, 6L, 29L, 4L, 26L, 12L, 12L,
3L, 21L, 20L, 17L, 31L, 79L, 10L, 59L, 12L, 6L, 18L, 21L, 27L,
31L, 14L, 40L, 37L, 0L, 0L, 0L, 52L, 52L, 63L, 0L, 30L, 2L, 14L,
14L, 4L, 41L, 296L, 115L, 470L, 171L, 589L, 96L, 306L, 44L, 131L,
244L, 75L, 217L, 252L, 304L, 313L, 250L, 315L, 121L, 298L, 247L,
222L, 161L, 335L, 173L)), .Names = c("Date", "Site", "Passes"
), class = "data.frame", row.names = c(NA, -97L))
答案 0 :(得分:1)
如果它适用于您的数据子集,则很可能是您的数据中存在某些意外情况(NA等)。如果不看数据,就不可能确切地知道发生了什么。如果您使用dput(data)
提供数据,则可能会得到更好的答案。