ggplot2 - Biểu đồ Phân kỳ
Trong các chương trước, chúng ta đã xem xét các loại biểu đồ khác nhau có thể được tạo bằng gói “ggplot2”. Bây giờ chúng ta sẽ tập trung vào các biến thể tương tự như biểu đồ thanh phân kỳ, biểu đồ hình kẹo mút và nhiều thứ khác. Để bắt đầu, chúng ta sẽ bắt đầu với việc tạo biểu đồ thanh phân kỳ và các bước tiếp theo được đề cập bên dưới:
Hiểu tập dữ liệu
Tải gói yêu cầu và tạo một cột mới có tên 'tên xe' trong tập dữ liệu mpg.
#Load ggplot
> library(ggplot2)
> # create new column for car names
> mtcars$`car name` <- rownames(mtcars)
> # compute normalized mpg
> mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)
> # above / below avg flag
> mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")
> # sort
> mtcars <- mtcars[order(mtcars$mpg_z), ]
Tính toán trên liên quan đến việc tạo một cột mới cho tên xe, tính toán bộ dữ liệu chuẩn hóa với sự trợ giúp của hàm vòng. Chúng tôi cũng có thể sử dụng cờ trung bình trên và dưới để nhận các giá trị của chức năng "loại". Sau đó, chúng tôi sắp xếp các giá trị để tạo tập dữ liệu cần thiết.
Kết quả nhận được như sau:
Chuyển đổi các giá trị thành hệ số để giữ lại thứ tự đã sắp xếp trong một ô cụ thể như được đề cập bên dưới -
> # convert to factor to retain sorted order in plot.
> mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`)
Đầu ra thu được được đề cập dưới đây:
Biểu đồ thanh phân kỳ
Bây giờ, hãy tạo một biểu đồ thanh phân kỳ với các thuộc tính đã đề cập được lấy làm tọa độ bắt buộc.
> # Diverging Barcharts
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
+ scale_fill_manual(name="Mileage",
+ labels = c("Above Average", "Below Average"),
+ values = c("above"="#00ba38", "below"="#f8766d")) +
+ labs(subtitle="Normalised mileage from 'mtcars'",
+ title= "Diverging Bars") +
+ coord_flip()
Note - Biểu đồ thanh phân kỳ đánh dấu cho một số thành viên thứ nguyên chỉ theo hướng lên hoặc xuống đối với các giá trị đã đề cập.
Đầu ra của biểu đồ thanh phân kỳ được đề cập bên dưới, nơi chúng tôi sử dụng hàm geom_bar để tạo biểu đồ thanh -
Biểu đồ kẹo mút phân kỳ
Tạo biểu đồ hình lollipop phân kỳ với các thuộc tính và tọa độ giống nhau mà chỉ thay đổi chức năng sẽ được sử dụng, tức là geom_segment () giúp tạo biểu đồ hình lollipop.
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', fill="black", size=6) +
+ geom_segment(aes(y = 0,
+ x = `car name`,
+ yend = mpg_z,
+ xend = `car name`),
+ color = "black") +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Lollipop Chart",
+ subtitle="Normalized mileage from 'mtcars': Lollipop") +
+ ylim(-2.5, 2.5) +
+ coord_flip()
Lô dấu chấm phân kỳ
Tạo một biểu đồ chấm phân kỳ theo cách tương tự trong đó các chấm đại diện cho các điểm trong các ô phân tán ở kích thước lớn hơn.
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', aes(col=mpg_type), size=6) +
+ scale_color_manual(name="Mileage",
+ labels = c("Above Average", "Below Average"),
+ values = c("above"="#00ba38", "below"="#f8766d")) +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Dot Plot",
+ subtitle="Normalized mileage from 'mtcars': Dotplot") +
+ ylim(-2.5, 2.5) +
+ coord_flip()
Ở đây, các chú giải đại diện cho các giá trị "Trên Trung bình" và "Dưới Trung bình" với các màu riêng biệt là xanh lục và đỏ. Dấu chấm truyền tải thông tin tĩnh. Các nguyên tắc giống như nguyên tắc trong biểu đồ thanh Phân kỳ, ngoại trừ điểm duy nhất được sử dụng.