ggplot2: 饼图

作者: LET149 | 来源:发表于2023-05-14 17:35 被阅读0次

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

    相关文章

      网友评论

        本文标题:ggplot2: 饼图

        本文链接:https://www.haomeiwen.com/subject/klasvltx.html