R語言ggplot2做玫瑰圖的簡單小例子

P0(FN2ZN}QH8QSC$2~ZEJGI.jpg

今天在一個(gè)交流群里看到有人問這個(gè)圖如何實(shí)現(xiàn)?這種圖叫玫瑰圖,如果使用R語言的ggplot2來做的話, 比較常規(guī)的實(shí)現(xiàn)辦法是先做柱形圖,然后再用極坐標(biāo),比如

df<-data.frame(x=LETTERS[1:6],
               y=sample(1:10,6))

library(ggplot2)

ggplot(df,aes(x=x,y=y))+
  geom_col(aes(fill=x),show.legend = F)+
  coord_polar()
image.png

但是這個(gè)花瓣是圓弧形的,并不是推文開頭提到的圖片中的樣式。

印象里好像見過python實(shí)現(xiàn)推文開頭提到的圖。所以搜了關(guān)鍵詞 python rose plot,找到了參考鏈接 https://www.codesansar.com/python-programming-examples/plot-rose-curves.htm 發(fā)現(xiàn)他構(gòu)造數(shù)據(jù)的代碼是使用正余弦函數(shù),我們?cè)囍肦語言的ggplot2試一下

假設(shè)我們有10個(gè)數(shù)據(jù)

x<-1:180
x
y<-sin(10*x*pi/180)

df<-data.frame(x=x,y=abs(y))

df$yz<-df$y*df$z

ggplot(data=df,aes(x=x,y=y))+
  geom_area(fill="blue",
            alpha=0.5,
            color="black")+
  coord_polar()+
  theme_bw()+
  theme(axis.text = element_blank(),
        axis.ticks = element_blank(),
        panel.border = element_blank(),
        axis.title = element_blank())
image.png

這種思路是可行的

下面是完整的代碼

library(tidyverse)
library(ggplot2)

set.seed(123456)

df<-data.frame(x=LETTERS[1:10],
               y=sample(1:20,10))
df

x<-1:180
x
y<-sin(10*x*pi/180)

df1<-data.frame(x1=x,
               y1=abs(y),
               var=gl(10,18,labels = LETTERS[1:10]))
df1
merge(df1,df,by.x = 'var',by.y = 'x') %>% 
  mutate(new_y=y1*y) -> df2
  
ggplot(data=df2,aes(x=x,y=new_y))+
  geom_area(aes(fill=var),
            alpha=0.8,
            color="black",
            show.legend = F)+
  coord_polar()+
  theme_bw()+
  theme(axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        panel.border = element_blank(),
        axis.title = element_blank())+
  scale_x_continuous(breaks = seq(9,180,18),
                     labels = df$x)+
  geom_text(data=df,aes(x=seq(9,180,18),
                         y=y+1,
                         label=y))
image.png

歡迎大家關(guān)注我的公眾號(hào)

小明的數(shù)據(jù)分析筆記本

小明的數(shù)據(jù)分析筆記本 公眾號(hào) 主要分享:1、R語言和python做數(shù)據(jù)分析和數(shù)據(jù)可視化的簡單小例子;2、園藝植物相關(guān)轉(zhuǎn)錄組學(xué)、基因組學(xué)、群體遺傳學(xué)文獻(xiàn)閱讀筆記;3、生物信息學(xué)入門學(xué)習(xí)資料及自己的學(xué)習(xí)筆記!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容