《R數(shù)據(jù)可視化手冊(cè)》學(xué)習(xí)筆記3---條形圖(3)簇狀條形圖

寫(xiě)在前面。

條形圖一般用來(lái)展示不同分類下(x軸)某個(gè)數(shù)值型變量的取值(y軸)。注意,條形的高度,有時(shí)是變量的頻數(shù),有時(shí)是變量的取值本身,需要注意區(qū)分。

條形圖

我沒(méi)有按照書(shū)中的章節(jié)順序,而是根據(jù)條形高度映射數(shù)據(jù)類型圖形位置圖形元素進(jìn)行了分類整合,使脈絡(luò)更清晰,知識(shí)點(diǎn)更集中。

同時(shí)隨著ggplot2包的更新,書(shū)中的一些用法也已經(jīng)不適用了,因此會(huì)做一些更正。

所使用的一些示例數(shù)據(jù)需要安裝加載包gcookbook,同時(shí)也需要加載ggplot2

if(!require(gcookbook) ) install.packages("gcookbook")
library(gcookbook)
library(ggplot2)

另外,ggplot2繪圖的常用基本語(yǔ)句需要知道:

ggplot(data = , aes(x= , y = ) ) + geom_xxxx() + ...

2. 圖形位置

ggplot語(yǔ)句中,通過(guò)映射一個(gè)分類變量給aes語(yǔ)句的fill參數(shù),根據(jù)不同的變量值給條形分配不同的填充顏色,然后設(shè)定不同的位置排列,分為簇狀(并排排列)堆積兩種。

2.1 簇狀條形圖

使用示例數(shù)據(jù)cabbage_exp數(shù)據(jù)集:

> cabbage_exp
  Cultivar Date Weight        sd  n         se
1      c39  d16   3.18 0.9566144 10 0.30250803
2      c39  d20   2.80 0.2788867 10 0.08819171
3      c39  d21   2.74 0.9834181 10 0.31098410
4      c52  d16   2.26 0.4452215 10 0.14079141
5      c52  d20   3.11 0.7908505 10 0.25008887
6      c52  d21   1.47 0.2110819 10 0.06674995

Cultivar映射給fill參數(shù),并設(shè)置position= "dodge"(水平方向錯(cuò)開(kāi))

映射給y的是確定的值,因此stat="identity"

ggplot(data = cabbage_exp, aes(x= Date ,y = Weight, fill = Cultivar  )) + 
  geom_bar(position = "dodge", stat = "identity")

[圖片上傳失敗...(image-7b5dc3-1694565251399)]

注意,映射給fill的變量也是離散型變量。

可以通過(guò)scale_fill_brewer()或者scale_fill_manual()對(duì)填充顏色進(jìn)行設(shè)置:

ggplot(data = cabbage_exp, aes(x= Date ,y = Weight, fill = Cultivar  )) + 
  geom_bar(position = "dodge", stat = "identity") +
  scale_fill_manual(values = c('#01008B', '#DC010C'))

[圖片上傳失敗...(image-f112a3-1694565251399)]


注意,如果分類變量有缺失值,圖形會(huì)被略去不繪制,被臨近色塊擴(kuò)充。

這里我們手動(dòng)刪掉一個(gè)觀測(cè),造成分類變量缺失值。

> cabbage_exp[1:5,]
  Cultivar Date Weight        sd  n         se
1      c39  d16   3.18 0.9566144 10 0.30250803
2      c39  d20   2.80 0.2788867 10 0.08819171
3      c39  d21   2.74 0.9834181 10 0.31098410
4      c52  d16   2.26 0.4452215 10 0.14079141
5      c52  d20   3.11 0.7908505 10 0.25008887

然后再繪制。

ggplot(data = cabbage_exp[1:5,], aes(x= Date ,y = Weight, fill = Cultivar  )) + 
  geom_bar(position = "dodge", stat = "identity") +
  scale_fill_manual(values = c('#01008B', '#DC010C'))

[圖片上傳失敗...(image-ac5a82-1694565251399)]


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容