Tôi đang làm việc trên một gói phối hợp sử dụng ggplot2
. Ngay bây giờ tôi đang xây dựng biplots theo cách truyền thống, với tải trọng được đại diện với mũi tên. Tôi cũng sẽ được quan tâm mặc dù sử dụng các trục được hiệu chuẩn và đại diện cho các trục tải như các đường thẳng qua gốc, và với các nhãn tải được hiển thị bên ngoài khu vực ô. Trong cơ sở R này được thực hiện trongR: thêm trục đã hiệu chỉnh vào PCA biplot trong ggplot2
library(OpenRepGrid)
biplot2d(boeker)
nhưng tôi đang tìm kiếm một giải pháp ggplot2
. Có ai có bất kỳ suy nghĩ làm thế nào để đạt được một cái gì đó như thế này trong ggplot2
? Việc thêm các tên biến ngoài vùng biểu đồ có thể được thực hiện like here Tôi cho rằng, nhưng làm thế nào các đoạn đường bên ngoài vùng biểu đồ được vẽ?
Hiện nay những gì tôi có là
install.packages("devtools")
library(devtools)
install_github("fawda123/ggord")
library(ggord)
data(iris)
ord <- prcomp(iris[,1:4],scale=TRUE)
ggord(ord, iris$Species)
Các tải trọng là trong ord$rotation
PC1 PC2 PC3 PC4
Sepal.Length 0.5210659 -0.37741762 0.7195664 0.2612863
Sepal.Width -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length 0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width 0.5648565 -0.06694199 -0.6342727 0.5235971
Làm thế nào tôi có thể thêm những dòng qua gốc, các ve bên ngoài và các nhãn bên ngoài vùng trục (có thể bao gồm cả sự rung lên mát mẻ được áp dụng ở trên cho các nhãn chồng lên nhau)?
NB Tôi không muốn tắt clipping, vì một số yếu tố cốt truyện của tôi đôi khi có thể đi ra ngoài các ranh giới hộp
EDIT: Someone else apparently asked a similar question before, mặc dù câu hỏi là vẫn không có câu trả lời. Nó chỉ ra rằng để làm một cái gì đó như thế này trong cơ sở R (mặc dù trong một cách xấu xí) người ta có thể làm ví dụ
plot(-1:1, -1:1, asp = 1, type = "n", xaxt = "n", yaxt = "n", xlab = "", ylab = "")
abline(a = 0, b = -0.75)
abline(a = 0, b = 0.25)
abline(a = 0, b = 2)
mtext("V1", side = 4, at = -0.75*par("usr")[2])
mtext("V2", side = 2, at = 0.25*par("usr")[1])
mtext("V3", side = 3, at = par("usr")[4]/2)
Minimal dụ hoàn toàn khả thi trong ggplot2
sẽ
library(ggplot2)
df <- data.frame(x = -1:1, y = -1:1)
dfLabs <- data.frame(x = c(1, -1, 1/2), y = c(-0.75, -0.25, 1), labels = paste0("V", 1:3))
p <- ggplot(data = df, aes(x = x, y = y)) + geom_blank() +
geom_abline(intercept = rep(0, 3), slope = c(-0.75, 0.25, 2)) +
theme_bw() + coord_cartesian(xlim = c(-1, 1), ylim = c(-1, 1)) +
theme(axis.title = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(),
panel.grid = element_blank())
p + geom_text(data = dfLabs, mapping = aes(label = labels))
nhưng như bạn có thể thấy không có may mắn với các nhãn, và tôi đang tìm kiếm một giải pháp mà không yêu cầu một để tắt cắt.
EDIT2: bit của câu hỏi có liên quan là cách tôi có thể thêm dấu ngắt tùy chỉnh/dấu tick và nhãn, nói màu đỏ, ở trên cùng của trục X và bên phải của trục Y, để hiển thị hệ tọa độ của hệ số tải? (trong trường hợp tôi sẽ mở rộng tỷ lệ tương ứng với điểm số yếu tố để làm cho các mũi tên rõ ràng hơn, thường được kết hợp với một vòng tròn đơn vị)
Có lẽ sử dụng 'geom_path()' để có được đường của bạn? và sau đó cũng sử dụng trục tùy chỉnh? [Xem tại đây] (http://www.cookbook-r.com/Graphs/Axes_ (ggplot2) /) để biết các mẹo về điều đó. Tuy nhiên, Hadley không thích nhiều lô trên đầu trang của nhau, do đó bạn có thể không thể thực hiện những gì bạn muốn một cách dễ dàng (xem câu trả lời của Hadley [ở đây] (http://stackoverflow.com/questions/3099219/how-to-use -ggplot2-make-plot-với-2-y-trục-một-y-trục-trên-trái-và-một)). –
Có cho các dòng tôi nghĩ rằng tôi có thể quản lý (mặc dù tôi sẽ chạy vào vấn đề tôi nghĩ rằng nếu tôi sẽ để cho các dòng chạy bên ngoài khu vực cốt truyện, vì tôi không muốn vô hiệu hóa cắt trong trường hợp của tôi). Đối với các nhãn bạn sẽ đề nghị để đặt chúng tại các thời điểm cụ thể sau đó, nhưng chỉ đơn giản là sử dụng các dấu tick tiêu chuẩn cho họ? (không hoàn toàn là những gì tôi muốn, vì chúng lý tưởng nên xiên) Và làm cách nào tôi có thể nhận được các dấu ngắt và nhãn khác nhau trên tất cả 4 mặt của biểu đồ? –
Và có lại. Hadleys khăng khăng không muốn hỗ trợ các quy mô khác nhau: điều đó khiến tôi gặp rắc rối với biplots, vì tôi vẫn không quản lý thêm các dấu ngắt và nhãn cụ thể bằng màu khác ở đầu Y và bên phải trục X - nếu bạn sẽ xảy ra để biết làm thế nào để làm điều đó cho tôi biết; bit của một vấn đề liên quan .... –