ggplot2: 饼图
2023-05-14 本文已影响0人
LET149
1. 基础饼图
ggplot() + geom_bar(data=, aes(x=, fill=)) + coord_polar(theta=, start=, direction=)
coord_polar()
: 用来进行极坐标的转换theta=
:x
或者y
,用来指定用来生成角度的变量start=
: 开始的角度,填入整数,表示几点钟方向direction=
: 用来指定是顺时针还是逆时针,分别为1
和-1
> kk <- as.data.frame(list(diamonds$cut, diamonds$clarity))
> colnames(kk) <- c("aa", "bb")
> head(kk)
aa bb
1 Ideal SI2
2 Premium SI1
3 Good VS1
4 Premium VS2
5 Good SI2
6 Very Good VVS2
> ggplot()+geom_bar(data=kk, aes(x=factor(1),fill=bb)) '#先生成堆积柱状图,注意横坐标factor(1)的使用,示例一
> ggplot()+geom_bar(data=kk, aes(x=factor(1),fill=bb))+coord_polar(theta="y", start=0, direction=1) #将堆积柱状图转变成饼图,示例二
示例一
示例二
2. 风玫瑰图
ggplot()+geom_bar(data=, aes(x=, fill=))+coord_polar()
注意:转换时,横坐标在图像最中心,变成一个点,纵坐标位于相对外侧,不同的纵坐标形成不同的层(多个同心圆)
> kk <- as.data.frame(list(diamonds$cut, diamonds$clarity))
> colnames(kk) <- c("aa", "bb")
> head(kk)
aa bb
1 Ideal SI2
2 Premium SI1
3 Good VS1
4 Premium VS2
5 Good SI2
6 Very Good VVS2
> ggplot()+geom_bar(data=kk, aes(x=aa,fill=bb)) '#绘制堆积柱状图,示例三
> ggplot()+geom_bar(data=kk, aes(x=aa,fill=bb))+coord_polar() #将堆积柱状图进行极坐标转化,生成风玫瑰图,示例四
示例三
示例四
3. 方法3
ggplot(data=kk,aes(x="",y=frac,fill=phase)) +geom_bar(stat = "identity",color="white") + coord_polar(theta = "y")
> kk
frac phase
G1_frc 0.0 G1_frc
S_frc 0.4 S_frc
G2M_frc 0.6 G2M_frc
> ggplot(data=kk,aes(x="",y=frac,fill=phase)) +geom_bar(stat = "identity",color="white") + coord_polar(theta = "y") #示例一
示例一