2009-09-08 54 views

Trả lời

9

kiểm tra các tài liệu hướng ggplot cho scale_brewer http://www.had.co.nz/ggplot2/scale_brewer.html

một số ví dụ:

#see available pallets: 

library(RColorBrewer) 
display.brewer.all(5) 

#scatter plot 
dsamp <- diamonds[sample(nrow(diamonds), 1000), ] 
d <- qplot(carat, price, data=dsamp, colour=clarity) 
dev.new() 
d 
dev.new() 
d + scale_colour_brewer(palette="Set1") 
dev.new() 
d + scale_colour_brewer(palette="Blues") 
12

Dưới đây là một tập dữ liệu nhỏ:.

dat <- data.frame(x=1:20, 
        y=rnorm(20,0,10), 
        v=20:1) 

Giả sử tôi muốn điểm của tôi màu sử dụng giá trị v tôi có thể thay đổi cách thức tô màu được thực hiện bằng chức năng scale_colour_gradient().

library(ggplot2) 
qplot(x,y,data=dat,colour=color,size=4) + 
    scale_colour_gradient(low="black", high="white") 

alt text http://i29.tinypic.com/amxtu0.png

Ví dụ này chỉ nên giúp bạn bắt đầu. Để biết thêm, hãy xem scale_brewer() được đề cập trong bài đăng khác.

8

Nếu dữ liệu của bạn có các danh mục rời rạc mà bạn muốn tô màu thì nhiệm vụ của bạn sẽ dễ dàng hơn một chút. Ví dụ, nếu dữ liệu của bạn trông như thế này, với mỗi hàng đại diện cho một giao dịch,

> d <- data.frame(customer = sample(letters[1:5], size = 20, replace = TRUE), 
>    sales = rnorm(20, 8000, 2000), 
>    profit = rnorm(20, 40, 15)) 
> head(d,6) 
customer sales profit 
     a 8414.617 15.33714 
     a 8759.878 61.54778 
     e 8737.289 56.85504 
     d 9516.348 24.60046 
     c 8693.642 67.23576 
     e 7291.325 26.12234 

và bạn muốn thực hiện một biểu đồ phân tán của các giao dịch có màu của khách hàng, sau đó bạn có thể làm điều này

p <- ggplot(d, aes(sales,profit)) 
p + geom_point(aes(colour = customer)) 

để có được ....

sales vs profit coloured on customer

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