R - 柱狀圖:初學者指南,打造美麗的可視化
Hello there, aspiring data visualizers! I'm thrilled to be your guide on this exciting journey into the world of R and bar charts. As someone who's been teaching computer science for over a decade, I can tell you that creating visually appealing charts is not just a skill—it's an art form. And today, we're going to make you all artists with R!
什麼是柱狀圖?
在我們深入研究代碼之前,讓我們先了解什麼是柱狀圖。想像你在派對上,想要比較你朋友們的身高。你可以將他們排成一排靠牆站,或者你可以畫出代表每個人身高的小長方形。這就是柱狀圖的作用——它使用長方形柱子來顯示類別之間的比較。
現在,讓我們來試著寫一點R語言代碼!
基本柱狀圖
我們先從一個簡單的例子開始。假設我們想要視覺化各種口味冰淇淋的銷售數量。
# 創建一個冰淇淋口味的向量
flavors <- c("香草", "巧克力", "草莓", "薄荷")
# 創建一個銷售的向量
scoops <- c(50, 75, 30, 45)
# 創建柱狀圖
barplot(scoops, names.arg = flavors)
當你運行這段代碼時,你會看到一個基本的柱狀圖。每根柱子代表一種口味,它的高度代表銷售的冰淇淋球數量。簡單吧?但它看起來有點普通。讓我們來給它增加點特色!
柱狀圖標籤、標題和顏色
現在,讓我們讓我們的圖表更具信息性和視覺吸引力。
# 創建一個更具吸引力的柱狀圖
barplot(scoops,
names.arg = flavors,
col = c("乳白色", "巧克力色", "粉紅色", "淺綠色"),
main = "冰淇淋銷售按口味分",
xlab = "口味",
ylab = "銷售的冰淇淋球數量",
border = "深灰色",
ylim = c(0, 100))
# 在每根柱子上方添加文字標籤
text(x = 1:length(scoops), y = scoops, labels = scoops, pos = 3, cex = 0.8)
讓我們來分解這段代碼:
-
col
:我們為每根柱子指定一種顏色,與其口味相匹配。有趣吧? -
main
、xlab
、ylab
:這些為我們的圖表添加了標題和軸標籤。 -
border
:這為我們的柱子添加了邊框。 -
ylim
:這設定了y軸的範圍。 -
text()
函數在每根柱子上方添加標籤,顯示確切的冰淇淋球數量。
運行這段代碼,瞧!你現在有一個專業看起來的柱狀圖,甚至連戈登·拉姆齊(如果他是一位數據科學家)都會認可。
總分組柱狀圖
現在,讓我們升級一下。想像我們想要比較不同月份的冰淇淋銷售情況。這需要一個組合柱狀圖!
# 創建一個冰淇淋銷售的矩陣
sales <- matrix(c(50, 75, 30, 45,
60, 80, 40, 50,
45, 70, 35, 40),
nrow = 3, byrow = TRUE)
# 設置列名(口味)和行名(月份)
colnames(sales) <- c("香草", "巧克力", "草莓", "薄荷")
rownames(sales) <- c("六月", "七月", "八月")
# 創建組合柱狀圖
barplot(sales,
beside = TRUE,
col = c("天藍色", "粉紅色", "淺綠色"),
legend.text = rownames(sales),
args.legend = list(x = "右上", bty = "n"),
main = "冰淇淋銷售按口味和月份分",
xlab = "口味",
ylab = "銷售的冰淇淋球數量")
在這裡,beside = TRUE
告訴R將柱子並排放置而不是堆疊。legend.text
和 args.legend
參數為我們的圖表添加了一個圖例。
堆疊柱狀圖
最後但同樣重要的是,讓我們來創建一個堆疊柱狀圖。這當你想要顯示總數和組成時非常完美。
# 創建一個堆疊柱狀圖
barplot(sales,
col = c("天藍色", "粉紅色", "淺綠色"),
legend.text = rownames(sales),
args.legend = list(x = "右上", bty = "n"),
main = "總冰淇淋銷售按口味分",
xlab = "口味",
ylab = "總銷售的冰淇淋球數量")
這裡唯一的區別是我們移除了 beside = TRUE
。現在,每種口味的柱子是堆疊的,顯示了總銷售數和每個月的貢獻。
結論
好了,各位!你剛剛學會了如何在R中創建基本、組合和堆疊柱狀圖。記住,精通這些技巧的關鍵是練習。嘗試更改顏色,添加更多數據,甚至為你的圖表添加動畫(是的,在R中這也是可能的)!
這裡有一個我們使用的主要函數的快速參考表:
函數 | 描述 |
---|---|
barplot() |
創建一個柱狀圖 |
text() |
在圖表中添加文字 |
legend() |
在圖表中添加圖例 |
matrix() |
創建一個矩陣 |
c() |
將值結合到一個向量或列表中 |
記住,數據視覺化就是用你的數據講故事。所以,勇於嘗試,讓你的數據通過美麗的柱狀圖來說話!
快樂編程,願你的柱子總是完美對齊!
Credits: Image by storyset