R語言餅狀圖

R編程語言中有許多庫用來創建圖表。餅狀圖是以不同顏色的圓的切片表示的值。這些切片被標記,並且每個切片對應的數字也在圖表中表示。

在R中,使用將正數作爲向量輸入的pie()函數創建餅狀圖。附加參數用於控制標籤,顏色,標題等。

語法

使用R編程語言創建餅圖的基本語法是 -

pie(x, labels, radius, main, col, clockwise)

以下是使用的參數的描述 -

  • x - 是包含餅圖中使用的數值的向量。
  • labels - 用於描述切片的標籤。
  • radius - 用來表示餅圖圓的半徑(-1+1之間的值)。
  • main - 用來表示圖表的標題。
  • col - 表示調色板。
  • clockwise - 是一個邏輯值,指示片是順時針還是逆時針繪製。

例子

使用輸入向量和標籤創建一個非常簡單的餅狀圖。以下腳本將創建餅圖片並保存在當前R工作目錄中。假設下是一個統計年齡段的代碼 -

# Create data for the graph.
x <- c(11, 30, 39, 20)
labels <- c("70後", "80後", "90後", "00後")

# Give the chart file a name.
png(file = "birth_of_age.jpg")

# Plot the chart.
pie(x,labels)

# Save the file.
dev.off()

當我們執行上述代碼時,會產生以下結果(圖片) -

R語言餅狀圖

餅圖標題和顏色

可以通過向函數添加更多參數來擴展圖表的特徵。我們將使用參數main向圖表添加標題,另一個參數是col,在繪製圖表時將使用彩虹色托盤。托盤的長度應與圖表的數量相同。 因此我們使用length(x)

例子

以下腳本將創建一個餅圖圖片文件(age_title_colours.jpg)並保存當前R工作目錄中。

# Create data for the graph.
x <- c(11, 30, 39, 20)
labels <- c("70後", "80後", "90後", "00後")

# Give the chart file a name.
png(file = "age_title_colours.jpg")

# Plot the chart with title and rainbow color pallet.
pie(x, labels, main = "出生年齡段 - 餅狀圖", col = rainbow(length(x)))

# Save the file.
dev.off()

當我們執行上述代碼時,會產生以下結果 -

R語言餅狀圖

切片百分比和圖表圖例

我們可以通過創建附加的圖表變量來添加切片百分比和圖表圖例。參考以下代碼實現 -

# Create data for the graph.
x <-  c(21, 62, 10,53)
labels <- c("70後", "80後", "90後", "00後")

piepercent<- paste(round(100*x/sum(x), 2), "%")

# Give the chart file a name.
png(file = "age_percentage_legends.jpg")

# Plot the chart.
pie(x, labels = piepercent, main = "出生年齡段 - 餅狀圖",col = rainbow(length(x)))
legend("topright", c("70後","80後","90後","00後"), cex = 0.8,
   fill = rainbow(length(x)))

# Save the file.
dev.off()

當我們執行上述代碼時,會產生以下結果 -

R語言餅狀圖

3D餅圖

可以使用附加包來繪製具有3個維度的餅圖。軟件包plotrix中有一個名爲pie3D()的函數,用於此效果。參考以下代碼 -

注: 如果沒有安裝軟件庫:plotrix,可先執行install.packages("plotrix")來安裝。

# Get the library.
library("plotrix")

# Create data for the graph.
x <-  c(21, 62, 10,53)
lbl <- c("70後", "80後", "90後", "00後")

# Give the chart file a name.
png(file = "3d_pie_chart.jpg")

# Plot the chart.
pie3D(x,labels = lbl,explode = 0.1, main = "出生年齡段 - 餅狀圖")

# Save the file.
dev.off()

當我們執行上述代碼時,會產生以下結果 -

R語言餅狀圖