我是R编程的新手,非常感谢使用ggplot2
的一些帮助我有一组健康信息值,年龄范围从0到65+。我想知道如何将其分类为特定的年龄范围,如0-10,11-20等,并绘制age_group与每年医生访问次数(数据集中定义的变量)。
谢谢!
答案 0 :(得分:2)
您需要定义类别,然后使用ggplot2绘制它们。
我使用以下代码为自己的数据制作类别。您可以轻松更改它以适合您的数据集。
library("classInt")
library("RColorBrewer")
brks<-classIntervals(plot.melt2.data$data, n=7, style="fixed", fixedBreaks=c(0.5, 0.8, 0.9, 1.1, 1.2, 2, 5, 10)) #define categories
brks <- round(brks$brks,digits=2) #round
catVar<-findInterval(plot.melt2.data$data, brks, all.inside=TRUE) #assign categories for the data (previously melted using 'melt' function)
PMD<-cbind(plot.melt2.data, catVar) #join data & spatial info
# Create labels from break values
intLabels <- matrix(1:(length(brks)-1))
for(i in 1:length(intLabels )){intLabels [i] <- paste(as.character(brks[i]),"-",as.character(brks[i+1]))}
intLabels[1,1]<-c("< 0.8")
intLabels[7,1]<-c(">5")
#actual plotting step
map4<-ggplot(data = PMD, aes(x = long, y = lat, fill = catVar, group = group)) +
geom_polygon() + geom_path(colour = "grey", lwd = 0.1) + coord_equal() + labs(x = "LON", y = "LAT", fill = "Legend:") +
ggtitle("My Plot") +facet_wrap(~variable) + scale_fill_gradientn(colours=brewer.pal(7, "PiYG"), guide="legend", label=intLabels) # creates a faceted - multi plot, remove the +facet_wrap part for a single plot.