外圈
library(xlsx)
setwd("D:/R")
mydata <- read.xlsx2("条形图.xlsx",1)
mydata$面积 <- as.numeric(mydata$面积)
mydata$百分比 <- as.numeric(mydata$百分比)
library(reshape2)
mydata <- mydata[order(mydata$面积,decreasing = F),]
#横坐标排序
mydata$省份 <- factor(mydata$省份,levels = c("宁夏","黑龙江","广西","山东","四川","河北","甘肃", "贵州","湖南","云南"),labels =c("宁夏 74万亩","黑龙江 141万亩","广西 150万亩","山东 180万亩","四川 186万亩","河北 250万亩","甘肃 160万亩", "贵州 660万亩","湖南 794万亩","云南 794万亩"))
library(ggplot2)
#自定义颜色
color=c( 'gray', '#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462', '#B3DE69', '#FCCDE5', '#CCEBC5')
#先得到柱形图
p <- ggplot(mydata, aes(x = 省份, y = 面积, fill = 省份)) +
geom_bar(stat = 'identity', width = 0.8) +
scale_fill_manual(values = color[1:length(unique(mydata$省份))]) +
theme(panel.grid = element_blank(), panel.background = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), plot.title = element_text(hjust = 0.5)) +
labs(x = '', y = '')+
guides(fill=guide_legend(title=NULL))
#+geom_text(aes(label = 面积), size = 3, hjust = 0.5, vjust = 3, position = "stack")
p
#再经极坐标系变换得到圆环图
a <- p + coord_polar(theta = 'y')
a
#p + coord_polar(theta = 'x')
内圈
library(reshape2)
mydata <- mydata[order(mydata$面积,decreasing = F),]
mydata$省份 <- factor(mydata$省份,levels = c("云南","湖南","贵州","甘肃","河北","四川","山东","广西","黑龙江","宁夏"))
library(ggplot2)
#自定义颜色
color=c( 'gray', '#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462', '#B3DE69', '#FCCDE5', '#CCEBC5')
#先得到柱形图
p <- ggplot(mydata, aes(x = 省份, y = 面积, fill = 省份)) +
geom_bar(stat = 'identity', width = 0.8) +
scale_fill_manual(values = color[1:length(unique(mydata$省份))]) +
theme(panel.grid = element_blank(), panel.background = element_blank(), axis.text.x = element_blank()) +
labs(x = '', y = '')+
guides(fill=guide_legend(title=NULL))
p
#再经极坐标系变换得到圆环图
p + coord_polar(theta = 'y')