R

时间:2017-09-05 13:59:21

标签: r ggplot2

我试图理解轴的极限如何在ggplot直方图中起作用。当我尝试设置限制时,直方图会移动。

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

附上直方图。在第一个直方图上,第一个条形图是正确的,对于Jan,值大于20000。

问题是:在第二个直方图上,第一个条实际上是2月(见价值低于20000,这是错误的),但直方图中的条表示Jan.

我的问题:这个时间转变的原因是什么?此外,第二个直方图中缺少两个条形。

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

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

The first histogram

The second histogram

0 个答案:

没有答案