library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:5] y - 1:5 pieplot(x, y)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:9] y - 1:9 pieplot(x, y)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:5] y - 1:5 pieplot(x, y)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y, width=.1)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y, width=.9)
出图: 
如果要把饼图的各个扇形分开,就要设置width 参数,并且此参数越小,分开的空隙越大,反之越小;如果想要中间空的,通过加xlim
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y) + xlim(-1, NA)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y) + xlim(-.3, NA)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y) + xlim(-.5, NA)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y) + xlim(-.8, NA)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y, width=.5) + xlim(-.5, NA)
出图: 
library(ggplot2)
pieplot - function(x, y, width=1) { yy - cumsum(y) d= data.frame(ymin=yy-y + (1-width)/2, ymax=yy - (1-width)/2, group=x) ggplot(d) + geom_rect(aes(xmin=0, xmax=1, ymin=ymin, ymax=ymax, fill=group)) + coord_polar(theta='y') + theme_void() + ylim(0, NA) } x - letters[1:8] y - 1:8 pieplot(x, y) pieplot(x, y, width=.1) + xlim(-.9, NA)
出图: 
声明:本文基于参考文摘进行编辑
微信ID: lxdlxd19900511
|