R 按月进行镶嵌面换行(数字而不是字母)

R 按月进行镶嵌面换行(数字而不是字母),r,ggplot2,R,Ggplot2,我又一次经历了一次小小的挣扎,我似乎无法理解自己。我需要创建一个按月包装的图形方面。但当我这么做的时候,我就得到了。 正如你所看到的,月份是按字母顺序排列的,而不是按数字顺序排列的。我不完全确定如何解决这个问题。我将附加图形本身和月份列的代码 map.dat <- map_data(map(database= "world", ylim=c(15,90), xlim=c(-180, -40), fill = TRUE)) ggplot(map.dat) + geom_polygon(a

我又一次经历了一次小小的挣扎,我似乎无法理解自己。我需要创建一个按月包装的图形方面。但当我这么做的时候,我就得到了。 正如你所看到的,月份是按字母顺序排列的,而不是按数字顺序排列的。我不完全确定如何解决这个问题。我将附加图形本身和月份列的代码

map.dat <- map_data(map(database= "world", ylim=c(15,90), xlim=c(-180, -40), fill = TRUE))
ggplot(map.dat) +
  geom_polygon(aes(x=long, y=lat, group=group, fill=NULL)) +
  geom_path(data = subset(basindf2, year >= 1980 & 2010 >= year), aes(x = latitude, y = longitude, col = wind, group = factor(id))) +
  scale_colour_gradientn(colours = brewer.pal(9, 'Reds')[c(2,7,8,9)]) +
  xlab('') + scale_x_continuous(breaks = NULL) +
  ylab('') + scale_y_continuous(breaks = NULL) +
  ggtitle('Storm Trajectory (1980-2010)') +
  theme_bw() + theme(plot.title = element_text(size = 20, face="bold"), panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
  facet_wrap(~month)
map.dat=1980&2010>=年份),aes(x=纬度,y=经度,col=风,group=因子(id)))+
比例颜色梯度(颜色=brewer.pal(9,'红色')[c(2,7,8,9)])+
xlab(“”)+比例x连续(中断=空)+
ylab(“”)+比例y连续(中断=空)+
ggtitle(‘风暴轨迹(1980-2010)’)+
theme_bw()+theme(plot.title=元素_文本(size=20,face=“bold”)、panel.border=元素_blank()、panel.grid.major=元素_blank()、panel.grid.minor=元素_blank()+
面包(~月)
柱清洗月份:

monthnames <- c('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')
monthraw <- as.numeric(str_extract(str_extract(rawdfNA$V7, '-..-'), '\\d\\d'))
month <- monthnames[monthraw]

monthnames您需要将月份转换为月份名称顺序正确的因子。因此,如果您的月份变量是
map.dat$month
,您将执行以下操作:

map.dat$month = factor(map.dat$month, levels=month.name)
month.name
是R中的内置对象,因此您无需创建自己的对象<代码>因子
将月份转换为一个分类变量,根据
级别
中列出的顺序对类别进行排序