欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用R語言繪制棒棒糖圖火柴桿圖教程

 更新時間:2021年11月05日 14:10:59   作者:Kanny廣小隸  
本篇文章為大家介紹幾種利用R語言繪制棒棒糖圖(火柴桿圖)的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

 使用原生ggplot方法

最容易也是最簡單想到的方法是直接使用ggplot2包進行更新,這里需要使用ggplot本身的特性,通過圖層疊加的方式,進行最終棒棒糖圖的展現(xiàn)。(寬度極窄的柱狀圖配合散點圖即可呈現(xiàn))

1)生成數(shù)據(jù)

下面我們的展示均以此份數(shù)據(jù)為例:

library(ggplot2)

# Load data
data("mtcars")
dfm <- mtcars
# Convert the cyl variable to a factor
dfm$cyl <- as.factor(dfm$cyl)
# Add the name colums
dfm$name <- rownames(dfm)

# Calculate the z-score of the mpg data
dfm$mpg_z <- (dfm$mpg -mean(dfm$mpg))/sd(dfm$mpg)
dfm$mpg_grp <- factor(ifelse(dfm$mpg_z < 0, "low", "high"), 
                      levels = c("low", "high"))
# Inspect the data
head(dfm[, c("name", "wt", "mpg", "mpg_z", "mpg_grp", "cyl")])

2)繪制棒棒糖圖

ggplot(dfm, aes(x = name, y = mpg)) +
  geom_hline(yintercept = 0, color = "grey", size = 1) + # 添加y=0的輔助線
  geom_point(aes(color = cyl), size = 2) +         # 將點的size設(shè)置大一些比較好看
  geom_bar(aes(fill = cyl), stat = "identity", width = 0.2) + # 注意將width寬度設(shè)小
  theme_bw(base_family = "Times") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank(),      # 消除豎條的背景線
        axis.text.x = element_text(angle = 90),
        legend.position = "None",
        panel.border = element_blank(),
        # text = element_text(family = "STHeiti"), # Mac 電腦上繪圖展現(xiàn)中文需要此行命令
        plot.title = element_text(hjust = 0.5)) +  # 標(biāo)題居中,若無標(biāo)題可不加
  labs(x = "name", y = "mpg",
       colour = "", linetype = "", fill = "")

結(jié)果如下:

下面我們介紹一種更簡便且高級的棒棒糖圖繪制方法:使用ggpubr包中的ggdotchart()函數(shù)。

使用ggpubr包中的ggdotchart()

這里我們直接看官方介紹的幾個例子,來理解函數(shù)的使用方式,首先載入依賴包:

library(ggpubr)

1)

ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # Color by groups
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
           sorting = "ascending",                        # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           ggtheme = theme_pubr()                        # ggplot2 theme
)

2)

ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), 
           sorting = "asc", sort.by.groups = TRUE,                      
           add = "segments",                            
           add.params = list(color = "lightgray", size = 2), 
           group = "cyl",                                
           dot.size = 4,                                 
           ggtheme = theme_pubclean()
) + font("x.text", size = 8, vjust = 0.5)

3)

ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # Color by groups
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
           sorting = "descending",                       # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           rotate = TRUE,                                # Rotate vertically
           group = "cyl",                                # Order by groups
           dot.size = 6,                                 # Large dot size
           label = round(dfm$mpg),                        # Add mpg values as dot labels
           font.label = list(color = "white", size = 9,
                             vjust = 0.5),               # Adjust label parameters
           ggtheme = theme_pubr()                        # ggplot2 theme
)

4)

ggdotchart(dfm, x = "name", y = "mpg_z",
           color = "cyl",                                # Color by groups
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
           sorting = "descending",                       # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           add.params = list(color = "lightgray", size = 2), # Change segment color and size
           group = "cyl",                                # Order by groups
           dot.size = 6,                                 # Large dot size
           label = round(dfm$mpg_z,1),                        # Add mpg values as dot labels
           font.label = list(color = "white", size = 9,
                             vjust = 0.5),               # Adjust label parameters
           ggtheme = theme_pubr()                        # ggplot2 theme
) + geom_hline(yintercept = 0, linetype = 2, color = "lightgray")

參考

Articles - ggpubr: Publication Ready Plots

Articles - R Graphics Essentials

ggpubr: ‘ggplot2' Based Publication Ready Plots

以上就是使用R語言繪制棒棒糖圖火柴桿圖教程的詳細(xì)內(nèi)容,更多關(guān)于R語言繪制棒棒糖圖火柴桿圖的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用R語言實現(xiàn)自動文摘的方法

    使用R語言實現(xiàn)自動文摘的方法

    本文介紹了如何使用R語言實現(xiàn)自動文摘,我們首先介紹了基于詞頻-逆文檔頻率(TF-IDF)的自動文摘方法,包括創(chuàng)建詞項文檔矩陣,計算TF-IDF值,提取關(guān)鍵詞,以及根據(jù)關(guān)鍵詞生成摘要,需要的朋友一起學(xué)習(xí)下吧
    2023-05-05
  • R語言繪制Vonoroi圖的完整代碼

    R語言繪制Vonoroi圖的完整代碼

    今天來給大家分享一篇教程關(guān)于R語言繪制Vonoroi圖的完整代碼,包括deldir包繪制Voronoi圖,ggplot2繪制Voronoi圖的實現(xiàn)代碼,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • R語言繪圖如何支持中文

    R語言繪圖如何支持中文

    這篇文章主要介紹了R語言繪圖如何支持中文,幫助大家更好的理解和學(xué)習(xí)使用R語言,感興趣的朋友可以了解下
    2021-03-03
  • R語言實現(xiàn)各種數(shù)據(jù)可視化的超詳細(xì)教程

    R語言實現(xiàn)各種數(shù)據(jù)可視化的超詳細(xì)教程

    Python語言越來越流行,尤其是在機器學(xué)習(xí)與深度學(xué)習(xí)等領(lǐng)域,但是R語言在數(shù)據(jù)分析與可視化方面仍然具有絕對的優(yōu)勢,下面這篇文章主要給大家介紹了關(guān)于R語言實現(xiàn)各種數(shù)據(jù)可視化的超詳細(xì)教程,需要的朋友可以參考下
    2022-11-11
  • R語言rhdf5讀寫hdf5并展示文件組織結(jié)構(gòu)和索引數(shù)據(jù)

    R語言rhdf5讀寫hdf5并展示文件組織結(jié)構(gòu)和索引數(shù)據(jù)

    這篇文章主要為大家介紹了R語言rhdf5讀寫hdf5并展示文件組織結(jié)構(gòu)和索引數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • R語言繪制折線圖實例分析

    R語言繪制折線圖實例分析

    在本篇文章里小編給大家整理了一篇關(guān)于R語言繪制折線圖實例分析內(nèi)容,有需要的小伙伴可以跟著學(xué)習(xí)參考下。
    2021-04-04
  • R語言-實現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣

    R語言-實現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣

    這篇文章主要介紹了R語言-實現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Rstudio中安裝package出現(xiàn)的問題及解決

    Rstudio中安裝package出現(xiàn)的問題及解決

    這篇文章主要介紹了Rstudio中安裝package出現(xiàn)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言繪制地圖實例講解

    R語言繪制地圖實例講解

    這篇文章主要介紹了R語言繪制地圖實例講解,文中代碼實例講解的很清晰,有需要的可以研究下
    2021-03-03
  • R語言“循環(huán)”知識點詳解

    R語言“循環(huán)”知識點詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于R語言循環(huán)的相關(guān)知識點及用法總結(jié),有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-03-03

最新評論