Tôi có một khung dữ liệu như thế nàyggplot bộ scale_color_gradientn tay
BP R2 LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598
và tôi muốn âm mưu chống lại BP LOG10, màu sắc và các điểm bằng cách R2. R2 là các giá trị liên tục từ 0-1.
myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point()
Cho đến nay, rất tốt. Tuy nhiên tôi muốn hiển thị màu sắc R2 trong khoảng thời gian và màu sắc được chọn theo cách thủ công, như thế này (nếu tôi có giá trị rời rạc).
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() +
scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"),
values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale
Điều này có vẻ khá, nhưng tôi muốn đặt màu sắc cho bản thân.
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) +
scale_colour_gradientn(colours = rainbow(10))
Vì vậy, làm thế nào tôi có thể tự chọn khoảng thời gian từ các giá trị liên tục (1-0,8, 0,8-0,6, 0,6-0,4, 0,4-0,2, 0,2-0), và màu sắc theo ý thích của chúng tôi (đỏ, vàng , xanh lá cây, ánh sáng, xanh thẫm)? Một gradient mịn giữa các màu sắc sẽ được mát mẻ, nhưng không quan trọng.
Cảm ơn rất nhiều Didzis, hoàn toàn giải quyết nó! Bạn cũng có một giải pháp không có độ dốc, vì vậy thay vì tất cả các giá trị từ 1-0.8 = đỏ, 0,8-0,6 = màu vàng, v.v ...? – user2724998
Sau đó, bạn nên chia dữ liệu của bạn trong khoảng thời gian bằng cách sử dụng hàm cut() và sử dụng các khoảng thời gian đó dưới dạng các giá trị rời rạc. –
Ok, cảm ơn một lần nữa! – user2724998