2013-07-06 67 views
5

Tôi rất mới đối với R và tôi đang cố vẽ một biến thứ ba thành một ô sử dụng ggplot2. Tôi đã tìm kiếm một câu trả lời và tôi không thể tìm thấy bất cứ điều gì tương tự (hoặc tôi không biết các từ thích hợp để tìm kiếm).Vẽ một biến thứ ba trên trục x và y

Tôi có ba cột dữ liệu sẽ là biến x, y và z của tôi.

Tôi muốn biểu đồ có thể hiển thị các giá trị cho trục x và y (như trong các biến cột đầu tiên và thứ hai). Tuy nhiên, tôi muốn "điểm" (dưới dạng biểu đồ phân tán) trong biểu đồ là các giá trị được hiển thị trong biến z. Có cách nào để làm điều đó không? Tất cả mọi thứ mà tôi đã thử âm mưu x chống lại y.

Cảm ơn bạn đã trợ giúp!

+0

Tôi nghĩ rằng một phác thảo, hay một âm mưu excel, những gì bạn muốn sẽ giúp đỡ. Tôi không chắc chắn câu trả lời của tôi là những gì đang tìm kiếm. –

+0

Tôi đã cố gắng tải lên một hình nhưng tôi vẫn không có quyền cho điều đó. Tôi nghĩ rằng tôi muốn làm một cái gì đó như thêm một loạt trong excel. Hãy tưởng tượng tôi có giá trị cho x = VirusProbabitlity1, cho y = VirusRate1. Những gì tôi muốn âm mưu là giá trị của z = 0,0015. – Fabs

Trả lời

3

Tôi muốn "điểm" (dưới dạng biểu đồ phân tán) trong biểu đồ là các giá trị được hiển thị trong biến z. Có cách nào để làm điều đó không?

Chắc chắn. Các bit mà bạn cần phải suy nghĩ về là làm thế nào để trình bày các dữ liệu trong biến z của bạn. Bằng cách đó tôi có nghĩa là bạn muốn các thông tin trong z được thể hiện bằng màu sắc, kích thước hoặc khu vực của điểm? Có một số ví dụ tuyệt vời về cách thực hiện điều này tại the R cookbook.

Nếu bạn có một khung dữ liệu được gọi my.data, trong đó có cột x, y, và z, bạn cần phải thiết lập âm mưu của bạn như thế này:

my.plot <- ggplot(data = my.data, 
        aes(x = x, 
         y = y)) 

Ví dụ trên cho biết "mưu dữ liệu trong my.data sử dụng my.data$x để đặt vị trí x và y.data$y để đặt vị trí y ". Nếu biến x của bạn là grid.x và y là grid.y bạn sẽ phải

my.plot <- ggplot(data = my.data, 
        aes(x = grid.x, 
         y = grid.y)) 

sau đó bạn cần phải thêm số điểm của bạn. Lần này chúng tôi sẽ giả định rằng thông tin trong z sẽ sử dụng để thiết lập màu sắc của các điểm, mà trong trường hợp này là colour thẩm mỹ:

my.plot <- my.plot + geom_point(aes(colour = z)) 
print(my.plot) 

Và đó nên đó. Bạn không cần phải thông báo cho geom_point() những gì x và y là, bởi vì bạn đã làm điều đó khi bạn thiết lập cốt truyện.

+0

Trừ khi bạn có nghĩa là bạn muốn vẽ biến 'z' trên trục y, trong trường hợp này là' my.plot <- ggplot (dữ liệu = my.data, aes (x = x, y = z)) + geom_point() '. –

+0

Cảm ơn! Nhưng nó không phải là những gì tôi muốn làm .... Tôi muốn tải lên một tập tin với một con số hoặc một cái gì đó tương tự .. nhưng tôi vẫn không có sự cho phép cho điều đó. Nhưng dù gì cũng cảm ơn! – Fabs

4

Tôi tin rằng đây là những gì bạn đang hỏi: Ánh xạ hai biến: (x, y) vào trục của chúng và hiển thị "văn bản" của biến thứ ba. Hãy sử dụng khung dữ liệu này - Chúng tôi sẽ cố gắng "viết" X1 và X3

df <- data.frame(X1 = 1:5, X2 = 2*1:5, X3 = rnorm(1:5)) 

Với đồ họa cơ sở bạn chỉ có thể vẽ một ký tự

plot(df$X1, df$X2, pch = paste(df$X1)) plot(df$X1, df$X2, pch = paste(df$X3)) 

dường như không làm việc tốt .

Sử dụng ggplot2:

ggplot(df, aes(x = X1, y = X2)) + geom_text(label = df$X1) 
ggplot(df, aes(x = X1, y = X2)) + geom_text(label = df$X3) 

một lựa chọn fancier sẽ bổ sung màu sắc trong aes()

ggplot(df, aes(x = X1, y = X2, color=X3)) + geom_text(label = df$X3) 
+0

Cảm ơn! Tôi kết thúc làm một âm mưu đường viền ... Tôi không muốn bản đồ (x, y) trong một âm mưu. Nhưng tôi muốn các giá trị của z được liên kết với (x, y). Tôi đã cố gắng sử dụng những gì bạn đề xuất với dữ liệu của mình, nhưng vì tôi cần sử dụng một cái gì đó tương tự như facet_wrap, tôi nhận được một thông báo lỗi. – Fabs

+0

Ok. Đó là hoàn hảo. Có lẽ bạn có thể trả lời câu hỏi của riêng bạn với những gì bạn đã làm. – marbel

Các vấn đề liên quan