Biểu đồ thanh & Biểu đồ trong R (với Ví dụ)

Mục lục:

Anonim

Biểu đồ thanh là một cách tuyệt vời để hiển thị các biến phân loại trong trục x. Loại đồ thị này biểu thị hai khía cạnh trong trục y.

  1. Cái đầu tiên đếm số lần xuất hiện giữa các nhóm.
  2. Thống kê thứ hai hiển thị thống kê tóm tắt (tối thiểu, tối đa, trung bình, v.v.) của một biến trong trục y.

Bạn sẽ sử dụng tập dữ liệu mtcars với các biến sau:

  • cyl: Số xi lanh trên ô tô. Biến số
  • am: Kiểu truyền. 0 cho tự động và 1 cho thủ công. Biến số
  • mpg: Miles mỗi gallon. Biến số

Trong hướng dẫn này, bạn sẽ học

  • Cách tạo Biểu đồ thanh
  • Thay đổi màu sắc của các thanh
  • Thay đổi cường độ
  • Tô màu theo nhóm
  • Thêm một nhóm trong các thanh
  • Biểu đồ thanh theo tỷ lệ phần trăm
  • Thanh cạnh nhau
  • Biểu đồ

Cách tạo Biểu đồ thanh

Để tạo đồ thị trong R, bạn có thể sử dụng thư viện ggplot tạo đồ thị sẵn sàng xuất bản. Cú pháp cơ bản của thư viện này là:

ggplot(data, mapping = aes()) +geometric objectarguments:data: dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`

Trong hướng dẫn này, bạn quan tâm đến đối tượng hình học geom_bar () tạo biểu đồ thanh.

Biểu đồ thanh: số lượng

Biểu đồ đầu tiên của bạn hiển thị tần suất của hình trụ với geom_bar (). Đoạn mã dưới đây là cú pháp cơ bản nhất.

library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()

Giải thích mã

  • Bạn chuyển mtcars tập dữ liệu sang ggplot.
  • Bên trong đối số aes (), bạn thêm trục x làm biến nhân tố (cyl)
  • Dấu + có nghĩa là bạn muốn R tiếp tục đọc mã. Nó làm cho mã dễ đọc hơn bằng cách phá vỡ nó.
  • Sử dụng geom_bar () cho đối tượng hình học.

Đầu ra:

Lưu ý : hãy đảm bảo rằng bạn chuyển đổi các biến thành một nhân tố, nếu không R sẽ coi các biến là số. Xem ví dụ bên dưới.

Tùy chỉnh biểu đồ

Bốn đối số có thể được chuyển để tùy chỉnh biểu đồ:

- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar

Thay đổi màu sắc của các thanh

Bạn có thể thay đổi màu sắc của các thanh. Lưu ý rằng màu sắc của các thanh đều tương tự nhau.

# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()

Giải thích mã

  • Màu sắc của các thanh được điều khiển bởi ánh xạ aes () bên trong đối tượng hình học (tức là không nằm trong ggplot ()). Bạn có thể thay đổi màu bằng các đối số tô màu. Ở đây, bạn chọn màu san hô.

Đầu ra:

Bạn có thể sử dụng mã này:

grDevices::colors() 

để xem tất cả các màu có sẵn trong R. Có khoảng 650 màu.

Thay đổi cường độ

Bạn có thể tăng hoặc giảm cường độ màu của các thanh

# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()

Giải thích mã

  • Để tăng / giảm cường độ của thanh, bạn có thể thay đổi giá trị của alpha. Một alpha lớn làm tăng cường độ, và alpha thấp làm giảm cường độ. alpha nằm trong khoảng từ 0 đến 1. Nếu 1, thì màu giống như bảng màu. Nếu 0, màu là trắng. Bạn chọn alpha = 0,1.

Đầu ra:

Tô màu theo nhóm

Bạn có thể thay đổi màu sắc của các thanh, có nghĩa là một màu khác nhau cho mỗi nhóm. Ví dụ: biến cyl có ba mức, sau đó bạn có thể vẽ biểu đồ thanh với ba màu.

# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()

Giải thích mã

  • Đối số điền vào bên trong aes () cho phép thay đổi màu của thanh. Bạn thay đổi màu bằng cách đặt biến fill = x-axis. Trong ví dụ của bạn, biến trục x là cyl; điền = hệ số (cyl)

Đầu ra:

Thêm một nhóm trong các thanh

Bạn có thể tách thêm trục y dựa trên một cấp yếu tố khác. Ví dụ, bạn có thể đếm số lượng hộp số tự động và số tay dựa trên loại xi lanh.

Bạn sẽ tiến hành như sau:

  • Bước 1: Tạo khung dữ liệu với tập dữ liệu mtcars
  • Bước 2: Gắn nhãn biến am với auto cho hộp số tự động và man cho hộp số tay. Chuyển đổi am và cyl dưới dạng thừa số để bạn không cần sử dụng factor () trong hàm ggplot ().
  • Bước 3: Vẽ biểu đồ thanh để đếm số lần truyền theo xi lanh
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))

Bạn có tập dữ liệu đã sẵn sàng, bạn có thể vẽ biểu đồ;

# Bước 3

ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()

Giải thích mã

  • Ggpplot () chứa dữ liệu tập dữ liệu và aes ().
  • Trong aes (), bạn bao gồm trục x biến và biến nào là bắt buộc để điền vào thanh (tức là am)
  • geom_bar (): Tạo biểu đồ thanh

Đầu ra:

Ánh xạ sẽ lấp đầy thanh với hai màu, một màu cho mỗi cấp độ. Dễ dàng thay đổi nhóm bằng cách chọn các biến nhân tố khác trong tập dữ liệu.

Biểu đồ thanh theo tỷ lệ phần trăm

Bạn có thể hình dung thanh theo tỷ lệ phần trăm thay vì số liệu thô.

# Biểu đồ thanh theo tỷ lệ phần trăm

ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()

Giải thích mã

  • Sử dụng vị trí = "điền" trong đối số geom_bar () để tạo đồ họa với tỷ lệ phần trăm trong trục y.

Đầu ra:

Thanh cạnh nhau

Dễ dàng vẽ biểu đồ thanh với biến nhóm cạnh nhau.

# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()

Giải thích mã

  • position = position_dodge (): Cho biết cách sắp xếp các thanh một cách rõ ràng

Đầu ra:

Biểu đồ

Trong phần thứ hai của hướng dẫn biểu đồ thanh, bạn có thể đại diện cho nhóm các biến có giá trị trong trục y.

Mục tiêu của bạn là tạo một biểu đồ với số dặm trung bình trên một gallon cho từng loại xi lanh. Để vẽ một biểu đồ cung cấp thông tin, bạn sẽ làm theo các bước sau:

  • Bước 1: Tạo một biến mới với số dặm trung bình trên một gallon theo xi lanh
  • Bước 2: Tạo biểu đồ cơ bản
  • Bước 3: Thay đổi hướng
  • Bước 4: Thay đổi màu sắc
  • Bước 5: Thay đổi kích thước
  • Bước 6: Thêm nhãn vào biểu đồ

Bước 1) Tạo một biến mới

Bạn tạo một khung dữ liệu có tên data_histogram mà chỉ đơn giản trả về dặm trung bình mỗi gallon bằng của số xi-lanh trong xe. Bạn gọi biến mới này là mean_mpg và bạn làm tròn giá trị trung bình bằng hai số thập phân.

# Bước 1

data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))

Bước 2) Tạo biểu đồ cơ bản

Bạn có thể vẽ biểu đồ. Nó không sẵn sàng giao tiếp để giao cho khách hàng nhưng cho chúng ta trực giác về xu hướng.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")

Giải thích mã

  • Aes () bây giờ có hai biến. Biến cyl đề cập đến trục x và mean_mpg là trục y.
  • Bạn cần chuyển đối số stat = "Identity" để tham chiếu biến trong trục y dưới dạng giá trị số. geom_bar sử dụng stat = "bin" làm giá trị mặc định.

Đầu ra:

Bước 3) Thay đổi hướng

Bạn thay đổi hướng của biểu đồ từ dọc sang ngang.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()

Giải thích mã

  • Bạn có thể kiểm soát hướng của đồ thị bằng coord_flip ().

Đầu ra:

Bước 4) Thay đổi màu sắc

Bạn có thể phân biệt màu sắc của các thanh theo mức nhân tố của biến trục x.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()

Giải thích mã

  • Bạn có thể vẽ biểu đồ theo nhóm với ánh xạ fill = cyl. R tự động xử lý màu sắc dựa trên mức độ biến đổi cyl

Đầu ra:

Bước 5) Thay đổi kích thước

Để làm cho biểu đồ trông đẹp hơn, bạn giảm chiều rộng của thanh.

graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()

Giải thích mã

  • Đối số width bên trong geom_bar () kiểm soát kích thước của thanh. Giá trị lớn hơn làm tăng chiều rộng.
  • Lưu ý, bạn lưu trữ đồ thị trong biểu đồ biến thiên. Bạn làm như vậy vì bước tiếp theo sẽ không thay đổi mã của đồ thị biến. Nó cải thiện khả năng đọc của mã.

Đầu ra:

Bước 6) Thêm nhãn vào biểu đồ

Bước cuối cùng bao gồm thêm giá trị của biến mean_mpg trong nhãn.

graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()

Giải thích mã

  • Hàm geom_text () rất hữu ích để kiểm soát tính thẩm mỹ của văn bản.
    • label =: Thêm nhãn bên trong các thanh
    • mean_mpg: Sử dụng biến mean_mpg cho nhãn
  • h chỉ kiểm soát vị trí của nhãn. Các giá trị đóng thành 1 hiển thị nhãn ở đầu thanh và các giá trị cao hơn sẽ đưa nhãn xuống dưới cùng. Nếu hướng của đồ thị là thẳng đứng, hãy thay đổi hjust thành vjust.
  • color = "white": Thay đổi màu của văn bản. Ở đây bạn sử dụng màu trắng.
  • size = 3: Đặt kích thước của văn bản.

Đầu ra:

Tóm lược

Biểu đồ thanh hữu ích khi trục x là một biến phân loại. Trục y có thể là một số hoặc một thống kê tóm tắt. Bảng dưới đây tóm tắt cách kiểm soát biểu đồ thanh với ggplot2:

Mục tiêu

Đếm

ggplot(df, eas(x= factor(x1)) + geom_bar()

Đếm với các màu tô khác nhau

ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar()

Đếm theo nhóm, xếp chồng lên nhau

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())

Đếm theo nhóm, cạnh nhau

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar()

Đếm theo nhóm, xếp chồng theo%

ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge())

Giá trị

ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity")