Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的圆形直方图显示不正确的值_R_Ggplot2_Plot_Histogram - Fatal编程技术网

R中的圆形直方图显示不正确的值

R中的圆形直方图显示不正确的值,r,ggplot2,plot,histogram,R,Ggplot2,Plot,Histogram,我试图从(本页上的第一个绘图)重新创建一个循环绘图,但我刚才得到的输出似乎不正确。“最后一个”栏(23和0之间)缺失,“第一个”栏(0和1之间)过高。更重要的是,条形图向左“移动”了一个单位,而在网站上方的情节似乎很好 这是我从那个网站复制的代码。我所做的唯一区别是,我从geom_histogram()中删除了“width=2”,因为否则它会引发一个错误,表明参数width已被弃用 library(lubridate) library(ggplot2) set.seed(44) N=5

我试图从(本页上的第一个绘图)重新创建一个循环绘图,但我刚才得到的输出似乎不正确。“最后一个”栏(23和0之间)缺失,“第一个”栏(0和1之间)过高。更重要的是,条形图向左“移动”了一个单位,而在网站上方的情节似乎很好

这是我从那个网站复制的代码。我所做的唯一区别是,我从geom_histogram()中删除了
“width=2”
,因为否则它会引发一个错误,表明参数
width
已被弃用


library(lubridate)
library(ggplot2)   

set.seed(44)
N=500
events <- as.POSIXct("2011-01-01", tz="GMT") + 
              days(floor(365*runif(N))) + 
              hours(floor(24*rnorm(N))) +  
              minutes(floor(60*runif(N))) +
              seconds(floor(60*runif(N)))

hour_of_event <- hour(events)

eventdata <- data.frame(datetime = events, eventhour = hour_of_event)
# determine if event is in business hours
eventdata$Workday <- eventdata$eventhour %in% seq(9, 17)

ggplot(eventdata, aes(x = eventhour, fill = Workday)) + 
    geom_histogram(breaks = seq(0, 24), colour = "grey") + 
    coord_polar(start = 0) + theme_minimal() + 
    scale_fill_brewer() + ylab("Count") + 
    ggtitle("Events by Time of day") + 
    scale_x_continuous("", limits = c(0, 24), breaks = seq(0, 24), labels = seq(0, 24))

你知道为什么我的绘图没有显示正确的值,以及我如何解决这个问题吗?

我提出这个解决方案的依据是:

库(lubridate)
图书馆(GG2)
种子(44)
N=500

事件问题似乎是由
geom\u直方图
scale\u x\u连续
函数的参数引起的

与此相反:

几何图形柱状图(中断=序号(0,24),颜色=“灰色”)+ 比例x连续(“,极限=c(0,24),中断=seq(0,24),标签=seq(0,24))
应该是:

geom\u柱状图(箱号=24,颜色=“灰色”)+
比例x连续(中断=顺序(-0.5,23.5),标签=顺序(0,24))

我仍然有点困惑,为什么它只能以这种方式工作,但它最终还是工作了…

谢谢。这并不完全是我想要的,但如果酒吧在几个小时之间,而不是在酒吧下面,那将是一个完美的解决方案。我搜索了一段时间,但没有找到。。对不起,没问题,再次谢谢你。与此同时,我还是为我的原始情节找到了一个解决方案:)
table(eventdata$eventhour)
0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 
23 22 18 26 28 20 19 21 16 17 20 16 18 22 16 21 24 21 22 27 25 18 23 17
library(lubridate)
library(ggplot2)

set.seed(44)
N=500
events <- as.POSIXct("2011-01-01", tz="GMT") + 
  days(floor(365*runif(N))) + 
  hours(floor(24*rnorm(N))) +  
  minutes(floor(60*runif(N))) +
  seconds(floor(60*runif(N)))

hour_of_event <- hour(events)

eventdata <- data.frame(datetime = events, eventhour = hour_of_event)
# determine if event is in business hours
eventdata$Workday <- eventdata$eventhour %in% seq(9, 17)

df <- data.frame(table(eventdata$eventhour),
                  business_hour = 0:23 %in% seq(9, 17))
colnames(df)[1:2] <- c("hour", "value")


ggplot(df, aes(hour, value, fill = business_hour)) +
  coord_polar(theta = "x", start = 0) +
  geom_bar(stat = "identity", width = .9)