編輯:可能是一些更類似於你想要什麼:
breaks <- quantile(data$vis)
qplot(x=x, y=y, data = data, color = vis) +
scale_colour_gradientn(breaks = as.vector(breaks), colours =
c("grey", "blue", "red"), values = as.vector(breaks),
oob = identity, rescaler = function(x,...) x, labels = names(breaks))
老答案:在這種情況下,休息是你真正想要的不是
qplot(x=x, y=y, data=data, color=vis) + scale_colour_gradient(breaks = 1:10 * 10)
考慮到數據量,我們有
quantile(data$vis, seq(0, 1, 0.1))
0% 10% 20% 30% 40%
9.294095e-07 1.883887e-02 8.059213e-02 1.646752e-01 3.580304e-01
50% 60% 70% 80% 90%
6.055612e-01 9.463869e-01 1.638687e+00 2.686160e+00 5.308239e+00
100%
1.693077e+02
所以可能像
qplot(x=x, y=y, data=data, color=vis) + scale_colour_gradient(limits = c(0,5))
將是一件好事,在這裏點> 5是灰色的。一個更復雜的解決方案,你可能首先想要的是this。
感謝您的幫助...這不是我想要的。我猜想:'scale_colour_gradient(breaks = as.matrix(quantile(data $ vis))'更貼近我的意圖,因爲它考慮到了偏斜度,並且沒有視覺檢查就能正常工作。但是:顏色並不適合我的突破... – Seb
@Seb,是的,這就是我的意思:這裏的休息不適合你的需要,'1:10 * 10'只是一個例子,你應該結合as.vector(分位數(data $ vis))'最後我提到了答案。 – Julius
@Seb,我的編輯答案仍然不是你所需要的嗎? – Julius