GGR绘图中直方图的时间轴设置

GGR绘图中直方图的时间轴设置,r,ggplot2,R,Ggplot2,我试图理解轴的极限在ggplot柱状图中是如何工作的。当我试图设置限制时,直方图发生了变化 下面是一个脚本,用于生成每个月的kWh直方图。在第一个图形(p1)上,我没有设置轴限制。在第二个图(p2)上,我设置了限制,该限制与数据集的时间跨度相同 柱状图附于后。在第一个柱状图上,第一个条形图是正确的,对于Jan,其值大于20000 问题是:在第二个柱状图上,第一个条形图实际上是二月(见值低于20000,这是错误的),但柱状图中的条形图表示一月 我的问题:是什么导致了这种时间转移?此外,第二个直方图

我试图理解轴的极限在ggplot柱状图中是如何工作的。当我试图设置限制时,直方图发生了变化

下面是一个脚本,用于生成每个月的kWh直方图。在第一个图形(p1)上,我没有设置轴限制。在第二个图(p2)上,我设置了限制,该限制与数据集的时间跨度相同

柱状图附于后。在第一个柱状图上,第一个条形图是正确的,对于Jan,其值大于20000

问题是:在第二个柱状图上,第一个条形图实际上是二月(见值低于20000,这是错误的),但柱状图中的条形图表示一月

我的问题:是什么导致了这种时间转移?此外,第二个直方图中缺少两个条形图

任何帮助都将不胜感激。谢谢

Lines <- "year,month,kWh
2014,1,21535
2014,2,19826
2014,3,20796
2014,4,21249
2014,5,21442
2014,6,22685
2014,7,20569
2014,8,23346
2014,9,23440
2014,10,20148
2014,11,24415
2014,12,21628"
con <- textConnection(Lines)

df = read.csv(con)

df$timestamp = as.POSIXct(paste(df$year,df$month,"01", sep="-"),
                          format="%Y-%m-%d", tz="GMT")

library(ggplot2)

png(filename = "p1.png", width = 800, height = 400, units = "px", pointsize = 24 )

p1 = ggplot(data = df, aes(x = timestamp, kWh)) +
           geom_bar(stat = "identity") +
     scale_x_datetime(date_breaks = "1 month", 
                      date_labels = "%m\n%Y")
p1 

png(filename = "p2.png", width = 800, height = 400, units = "px", pointsize = 24 )

time.start=as.POSIXct("2014-01-01",format="%Y-%m-%d", tz="GMT")
time.end=as.POSIXct("2014-12-01",format="%Y-%m-%d", tz="GMT")

p2 = ggplot(data = df, aes(x = timestamp, kWh)) +
           geom_bar(stat = "identity") +
     scale_x_datetime(limits = c(time.start,time.end),
                      date_breaks = "1 month", 
                      date_labels = "%m\n%Y")
p2

行不确定,但量表可能会将值视为每月Kwh的范围,因此01-0214实际上没有值,但有一个值是从2013年12月中旬到2014年1月。尝试设置:
time.start=as.POSIXct(“2013-12-19”,format=“%Y-%m-%d”,tz=“GMT”)time.end=as.POSIXct(“2014-12-14”,format=“%Y-%m-%d”,tz=“GMT”)
似乎
限制=c(time.start-30,time.end+30)
起作用,而
time.start,time.end
属于
日期类。但不是很令人满意。类似地,
coord_cartesian(xlim=c(time.start,time.end),expand=TRUE)
也能按预期工作。延长时间限制包括数据开头缺少的条。但那个酒吧标的是2013年12月,而不是2014年1月。真奇怪。你可以考虑问哈德利/打开一个关于这个的问题。