使用ggplot2,R在圆形图上绘制因子的非重叠级别

使用ggplot2,R在圆形图上绘制因子的非重叠级别,r,ggplot2,plot,histogram,R,Ggplot2,Plot,Histogram,我试图创建一个循环图来显示数据集中月份的频率/计数,但我也想按季节对月份进行分组。这里是一个类似的时间图,现在我想用同样的方法来绘制月份/季节。然而,由于某些原因,我似乎无法指定正确的选项来将我的等级划分为不重叠的月份类别。任何建议都将不胜感激 library(lubridate) library(ggplot2) # use at least 0.9.3 for theme_minimal() library(circular) ### PLOT FOR HOURS ### ## ge

我试图创建一个循环图来显示数据集中月份的频率/计数,但我也想按季节对月份进行分组。这里是一个类似的时间图,现在我想用同样的方法来绘制月份/季节。然而,由于某些原因,我似乎无法指定正确的选项来将我的等级划分为不重叠的月份类别。任何建议都将不胜感激

library(lubridate)
library(ggplot2)   # use at least 0.9.3 for theme_minimal()
library(circular)

### PLOT FOR HOURS ###

## generate random data in POSIX date-time format
set.seed(44)
N=500
events <- as.POSIXct("2011-01-01", tz="GMT") + 
  days(floor(365*runif(N))) + 
  hours(floor(24*rnorm(N))) +  # using rnorm here
  minutes(floor(60*runif(N))) +
  seconds(floor(60*runif(N)))

# extract hour with lubridate function
hour_of_event <- hour(events)
# make a dataframe
eventdata <- data.frame(datetime = events, eventhour = hour_of_event)
# determine if event is in business hours
eventdata$Workday <- eventdata$eventhour %in% seq(6, 18)

ra<-length(eventdata[,2])

for (i in 1:ra){

  if(eventdata[,3][i]=="TRUE"){eventdata$diel[i]<-"day"}else{eventdata$diel[i]<-"night"}

}

# Plot

ggplot(eventdata, aes(x = eventhour, fill = diel)) + 
  geom_histogram(breaks = seq(0,24), width = 2, 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)
库(ggplot2)#主题_minimal()至少使用0.9.3
图书馆(循环)
###密谋数小时###
##以POSIX日期时间格式生成随机数据
种子(44)
N=500

事件以下简单版本有效:

ggplot(eventdata, aes(x = factor(months), fill = season)) + 
  geom_histogram()+
  coord_polar()

嘿,我对这种方法有一个简短的评论。虽然它确实有效,但我也想展示所有月份(1, 2,…12)和可能在两个月类别中间的每一个栏(见当天的情节代码)。我对ggplot不太熟悉,但如果能提供一些帮助,我将不胜感激。非常感谢。所有月份(1,2,12)都在这里看到。如果你想在2个月中间显示条形图,你必须添加改进,调整代码和测试。ggplot2功能有很好的文档记录,它们可能会为您提供更好的演示文稿的想法。
ggplot(eventdata, aes(x = factor(months), fill = season)) + 
  geom_histogram()+
  coord_polar()