2013-04-03 32 views
9

Tôi có danh sách các điểm mà tôi muốn phát trên biểu đồ trong R. Trong giá thầu có 3 mức thông tin (trục X, trục Y và điểm khác) Tôi muốn vẽ các điểm trên biểu đồ và tô màu chúng trên thang đo cho biến thứ 3. Tôi có một giá trị phần trăm cho mỗi điểm mà tôi muốn hiển thị dưới dạng biến thứ ba (Z). Vì vậy, nếu A có giá trị Z là 0,95, tôi muốn nó có màu đỏ tươi, nhưng B chỉ có Z = 0,65, tôi muốn nó có màu đỏ xỉn màu xanh dương. Giá trị đi từ NA (màu xanh dương mà tôi cho là) ​​đến 0,99 (màu đỏ tươi).có các điểm lô được tô màu trên một phổ trong R

dữ liệu mẫu:

1 1 0.02937715 
2 1 0.05872889 
3 1 0.08802983 
4 1 0.11725462 
5 1 0.14637799 
6 1 0.17537475 
7 1 0.20421981 
8 1 0.23288821 
9 1 0.26135518 
10 1 0.28959607 

Cột thứ ba cung cấp cho các giá trị Z.

+0

Những âm mưu hệ thống mà bạn đang sử dụng? Đồ họa cơ sở, mạng hoặc ggplot2? –

+0

cơ sở ngay bây giờ, nhưng tôi không nhớ. – cianius

Trả lời

14

Một số dữ liệu tái sản xuất để chơi với sẽ là hữu ích:

DF <- expand.grid(x=1:100, y=1:100) 
DF$z <- abs(sin(DF$x/34) * cos(DF$y/22)) 

xy là một mạng lưới 1-100; z nằm trong khoảng từ 0 đến 1 (hàm này không có gì đặc biệt, chỉ là thứ nằm giữa 0 và 1 và không có cấu trúc cực kỳ đơn giản).

đồ họa cơ sở

plot(DF$x, DF$y, col=rgb((colorRamp(c("blue", "red"))(DF$z))/255), pch=19) 

enter image description here

ggplot2

library("ggplot2") 
ggplot(DF, aes(x, y, colour=z)) + 
    geom_point(shape=19) + 
    scale_colour_gradient(low="blue", high="red") 

enter image description here

+0

Xin chào Brian, xin lỗi về sự chậm trễ trong trả lời, đã khá bận rộn, nhưng tôi đã thêm dữ liệu mẫu. Dù sao đi nữa, tôi vẫn làm việc với những gì bạn đã cho tôi. – cianius

+1

Tôi cho rằng câu trả lời này không giúp ích gì khi bạn đặt tiền thưởng chi tiết hơn, nhưng tôi không chắc bạn muốn biết chi tiết hơn. Ngoài việc có thể thay đổi tên biến (mà tôi không biết tên của bạn là gì vì chúng không có trong ví dụ), chúng sẽ hoạt động trên dữ liệu của bạn như được viết. –

+2

không không giúp được gì. Tôi chỉ cho một tiền thưởng khi tôi thực sự đánh giá cao chất lượng câu trả lời của bạn. – cianius

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