簡體   English   中英

在ggplot2中使用scale_colour_gradient(low =“ red”,high =“ blue”)創建對稱的色標

[英]Create a symmetric colour scale with scale_colour_gradient(low=“red”, high=“blue”) in ggplot2

scale_colour_gradient(low="red", high="blue")

生成一個看起來主要是紅色的顏色漸變。 red-still_red-violet-blue中間有紫羅蘭色的red-violet-blue紫羅蘭色,但我卻得到了red-still_red-violet-blue

紅色-仍然_紅色-紫色-藍色

如何獲得以紫羅蘭為中心的漸變?

scale_colour_gradientn(colours=c("red","violet","blue"))
library(ggplot2)

dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
dsub$diff <- with(dsub, sqrt(abs(x-y))* sign(x-y))
(d <- qplot(x, y, data=dsub, colour=diff))

max_val <- max(abs(dsub$diff))
values <- seq(-max_val, max_val, length = 3)

d + scale_colour_gradientn(colours=c("red","violet","blue"),
                           values = values, rescaler = function(x, ...) x, oob = identity)

如評論中所述,使用scale_colour_gradient2更簡單

 d + scale_colour_gradient2(low='red',mid='violet',high='blue')

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM