Nó không phải là khó khăn để triển khai song song của riêng bạn phối âm mưu trong ggplot2, mà sẽ cung cấp cho bạn sự linh hoạt để tùy chỉnh các thẩm mỹ. Dưới đây là hình minh họa sử dụng khung dữ liệu được xây dựng trong diamonds
.
Để có tọa độ song song, bạn cần phải thêm cột ID
để bạn có thể xác định mỗi hàng của khung dữ liệu, chúng tôi sẽ sử dụng làm thẩm mỹ group
trong ggplot. Bạn cũng cần phải scale
các giá trị số để tất cả chúng đều nằm trên cùng một tỷ lệ dọc khi chúng tôi vẽ chúng. Sau đó, bạn cần phải lấy tất cả các cột mà bạn muốn trên trục x và định hình lại chúng thành định dạng "dài". Chúng tôi làm tất cả những điều đó ngay bên dưới với nhà điều hành đường ống tidyverse/dplyr
. Ngay cả sau khi giới hạn số lượng kết hợp danh mục, các đường có lẽ quá gắn bó với cốt truyện này để dễ hiểu, vì vậy hãy xem xét điều này chỉ đơn thuần là "bằng chứng về khái niệm". Hy vọng rằng, bạn có thể tạo ra một cái gì đó hữu ích hơn với dữ liệu của bạn. Tôi đã sử dụng colour
(cho các dòng) và fill
(đối với các điểm) thẩm mỹ dưới đây. Thay vào đó, bạn có thể sử dụng shape
hoặc linetype
tùy theo nhu cầu của mình.
library(tidyverse)
theme_set(theme_classic())
# Get 20 random rows from the diamonds data frame after limiting
# to two levels each of cut and color
set.seed(2)
ds = diamonds %>%
filter(color %in% c("D","J"), cut %in% c("Good", "Premium")) %>%
sample_n(20)
ggplot(ds %>%
mutate(ID = 1:n()) %>% # Add ID for each row
mutate_if(is.numeric, scale) %>% # Scale numeric columns
gather(key, value, c(1,5:10)), # Reshape to "long" format
aes(key, value, group=ID, colour=color, fill=cut)) +
geom_line() +
geom_point(size=2, shape=21, colour="grey50") +
scale_fill_manual(values=c("black","white"))
tôi đã không sử dụng ggparcoords
trước đó, nhưng lựa chọn duy nhất mà có vẻ đơn giản (ít nhất là trong lần thử đầu tiên của tôi với chức năng) là để dán với nhau hai cột dữ liệu. Dưới đây là một ví dụ. Thậm chí chỉ với bốn tổ hợp thể loại, cốt truyện là khó hiểu, nhưng có lẽ nó sẽ được interpretable nếu có mô hình mạnh mẽ trong dữ liệu của bạn:
library(GGally)
ds$group = with(ds, paste(cut, color, sep="-"))
ggparcoord(ds, columns=c(1, 5:10), groupColumn=11) +
theme(panel.grid.major.x=element_line(colour="grey70"))
gì bạn được đăng là đẹp hơn so với câu trả lời vì nó cho thấy sự phạm vi của mỗi tọa độ thay vì chỉ phạm vi tiêu chuẩn hóa ... – Chris