ggplot2生信软件

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")  #示例一
示例一
上一篇下一篇

猜你喜欢

热点阅读