R中的圆形直方图显示不正确的值
我试图从(本页上的第一个绘图)重新创建一个循环绘图,但我刚才得到的输出似乎不正确。“最后一个”栏(23和0之间)缺失,“第一个”栏(0和1之间)过高。更重要的是,条形图向左“移动”了一个单位,而在网站上方的情节似乎很好 这是我从那个网站复制的代码。我所做的唯一区别是,我从geom_histogram()中删除了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
“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)