R語(yǔ)言可視化(三十一):棒棒糖圖繪制

31. 棒棒糖圖繪制


清除當(dāng)前環(huán)境中的變量

rm(list=ls())

設(shè)置工作目錄

setwd("C:/Users/Dell/Desktop/R_Plots/31lollipop/")

使用ggplot2包繪制棒棒糖圖

library(ggplot2)

# 查看內(nèi)置示例數(shù)據(jù)
data("mtcars")
df <- mtcars
# 轉(zhuǎn)換為因子
df$cyl <- as.factor(df$cyl)
df$name <- rownames(df)
head(df)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
##                                name
## Mazda RX4                 Mazda RX4
## Mazda RX4 Wag         Mazda RX4 Wag
## Datsun 710               Datsun 710
## Hornet 4 Drive       Hornet 4 Drive
## Hornet Sportabout Hornet Sportabout
## Valiant                     Valiant

# 繪制基礎(chǔ)棒棒糖圖
ggplot(df,aes(name,mpg)) + 
  # 添加散點(diǎn)
  geom_point(size=5) + 
  # 添加輔助線段
  geom_segment(aes(x=name,xend=name,y=0,yend=mpg))
image.png
# 更改點(diǎn)的大小蹋宦,形狀侄柔,顏色和透明度
ggplot(df,aes(name,mpg)) + 
  # 添加散點(diǎn)
  geom_point(size=5, color="red", fill=alpha("orange", 0.3), 
             alpha=0.7, shape=21, stroke=3) + 
  # 添加輔助線段
  geom_segment(aes(x=name,xend=name,y=0,yend=mpg)) +
  theme_bw() + 
  theme(axis.text.x = element_text(angle = 45,hjust = 1),
        panel.grid = element_blank())
image.png
# 更改輔助線段的大小堕担,顏色和類型
ggplot(df,aes(name,mpg)) + 
  # 添加散點(diǎn)
  geom_point(aes(size=cyl,color=cyl)) + 
  # 添加輔助線段
  geom_segment(aes(x=name,xend=name,y=0,yend=mpg),
               size=1, color="blue", linetype="dotdash") +
  theme_classic() + 
  theme(axis.text.x = element_text(angle = 45,hjust = 1),
        panel.grid = element_blank()) +
  scale_y_continuous(expand = c(0,0))
image.png
# 對(duì)點(diǎn)進(jìn)行排序,坐標(biāo)軸翻轉(zhuǎn)
# 根據(jù)mpg值從小到大排序
df <- df[order(df$mpg),]
# 設(shè)置因子進(jìn)行排序
df$name <- factor(df$name,levels = df$name)

ggplot(df,aes(name,mpg)) + 
  # 添加散點(diǎn)
  geom_point(aes(color=cyl),size=8) + 
  # 添加輔助線段
  geom_segment(aes(x=name,xend=name,y=0,yend=mpg),
               size=1, color="gray") +
  theme_minimal() + 
  theme(
    panel.grid.major.y = element_blank(),
    panel.border = element_blank(),
    axis.ticks.y = element_blank()
  ) +
  coord_flip()
image.png

使用ggpubr包繪制棒棒糖圖

library(ggpubr)

# 查看示例數(shù)據(jù)
head(df)
##                      mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Cadillac Fleetwood  10.4   8  472 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8  460 215 3.00 5.424 17.82  0  0    3    4
## Camaro Z28          13.3   8  350 245 3.73 3.840 15.41  0  0    3    4
## Duster 360          14.3   8  360 245 3.21 3.570 15.84  0  0    3    4
## Chrysler Imperial   14.7   8  440 230 3.23 5.345 17.42  0  0    3    4
## Maserati Bora       15.0   8  301 335 3.54 3.570 14.60  0  1    5    8
##                                    name
## Cadillac Fleetwood   Cadillac Fleetwood
## Lincoln Continental Lincoln Continental
## Camaro Z28                   Camaro Z28
## Duster 360                   Duster 360
## Chrysler Imperial     Chrysler Imperial
## Maserati Bora             Maserati Bora

# 使用ggdotchart函數(shù)繪制棒棒糖圖
ggdotchart(df, x = "name", y = "mpg",
           color = "cyl", # 設(shè)置按照cyl填充顏色
           size = 6, # 設(shè)置點(diǎn)的大小
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 修改顏色畫板
           sorting = "ascending", # 設(shè)置升序排序                        
           add = "segments", # 添加輔助線段
           add.params = list(color = "lightgray", size = 1.5), # 設(shè)置輔助線段的大小和顏色
           ggtheme = theme_pubr(), # 設(shè)置主題
)
image.png
# 自定義一些參數(shù)
ggdotchart(df, x = "name", y = "mpg",
           color = "cyl", # 設(shè)置按照cyl填充顏色
           size = 8, # 設(shè)置點(diǎn)的大小
           palette = "jco", # 修改顏色畫板
           sorting = "descending", # 設(shè)置降序排序                        
           add = "segments", # 添加輔助線段
           add.params = list(color = "lightgray", size = 1.2), # 設(shè)置輔助線段的大小和顏色
           rotate = TRUE, # 旋轉(zhuǎn)坐標(biāo)軸方向
           group = "cyl", # 設(shè)置按照cyl進(jìn)行分組
           label = "mpg", # 按mpg添加label標(biāo)簽
           font.label = list(color = "white", 
                             size = 7, 
                             vjust = 0.5), # 設(shè)置label標(biāo)簽的字體顏色和大小
           ggtheme = theme_pubclean(), # 設(shè)置主題
)
image.png
sessionInfo()
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Chinese (Simplified)_China.936 
## [2] LC_CTYPE=Chinese (Simplified)_China.936   
## [3] LC_MONETARY=Chinese (Simplified)_China.936
## [4] LC_NUMERIC=C                              
## [5] LC_TIME=Chinese (Simplified)_China.936    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] ggpubr_0.2.1  magrittr_1.5  ggplot2_3.2.0
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.5       pillar_1.4.2     compiler_3.6.0   tools_3.6.0     
##  [5] digest_0.6.20    evaluate_0.14    tibble_2.1.3     lifecycle_0.2.0 
##  [9] gtable_0.3.0     pkgconfig_2.0.2  rlang_0.4.7      ggsci_2.9       
## [13] yaml_2.2.0       xfun_0.8         withr_2.1.2      dplyr_1.0.2     
## [17] stringr_1.4.0    knitr_1.23       generics_0.0.2   vctrs_0.3.2     
## [21] grid_3.6.0       tidyselect_1.1.0 glue_1.4.2       R6_2.4.0        
## [25] rmarkdown_1.13   purrr_0.3.2      scales_1.0.0     htmltools_0.3.6 
## [29] ellipsis_0.2.0.1 colorspace_1.4-1 ggsignif_0.5.0   labeling_0.3    
## [33] stringi_1.4.3    lazyeval_0.2.2   munsell_0.5.0    crayon_1.3.4
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末然想,一起剝皮案震驚了整個(gè)濱河市窘行,隨后出現(xiàn)的幾起案子莹捡,更是在濱河造成了極大的恐慌怕犁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幢码,死亡現(xiàn)場(chǎng)離奇詭異笤休,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)症副,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門店雅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)政基,“玉大人,你說(shuō)我怎么就攤上這事闹啦【诿鳎” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵窍奋,是天一觀的道長(zhǎng)荐健。 經(jīng)常有香客問(wèn)我,道長(zhǎng)琳袄,這世上最難降的妖魔是什么江场? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮窖逗,結(jié)果婚禮上址否,老公的妹妹穿的比我還像新娘。我一直安慰自己碎紊,他們只是感情好佑附,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矮慕,像睡著了一般帮匾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痴鳄,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音缸夹,去河邊找鬼痪寻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛虽惭,可吹牛的內(nèi)容都是我干的橡类。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼芽唇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼顾画!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起匆笤,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤研侣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后炮捧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庶诡,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年咆课,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了末誓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扯俱。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喇澡,靈堂內(nèi)的尸體忽然破棺而出迅栅,到底是詐尸還是另有隱情,我是刑警寧澤晴玖,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布库继,位于F島的核電站,受9級(jí)特大地震影響窜醉,放射性物質(zhì)發(fā)生泄漏宪萄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一榨惰、第九天 我趴在偏房一處隱蔽的房頂上張望拜英。 院中可真熱鬧,春花似錦琅催、人聲如沸居凶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)侠碧。三九已至,卻和暖如春缠黍,著一層夾襖步出監(jiān)牢的瞬間弄兜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工瓷式, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留替饿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓贸典,卻偏偏與公主長(zhǎng)得像视卢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子廊驼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345