Я пытаюсь построить точки данных с тремя разными цветами для трех диапазонов значений. Например:
library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(colour = qsec))
Вышеизложенное дает:
Теперь я хотел бы изменить это так, чтобы значения qseq < 17 были черными, значения между 17 и 19 были желтыми, а значения выше 19 красными. Я пробовал разные подходы, но никто из них не работает:
-
Взято из здесь
ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(fill = qsec)) + scale_fill_gradientn(colours=c("black","yellow","red"), breaks=c(0,17,19), labels=format(c("0","17","19")))
Это дает:
Итак, цветная панель кажется правильной, но цвета на самом деле не применяются.
-
Решения, представленные в ggplot2 heatmap с цветами для значений дальности, кажутся многообещающими, но я не могу заставить их работать с
geom_point()
. -
То же самое касается различных похожих сообщений, таких как те, которые указаны на боковой панели.
Я понимаю, что мне, вероятно, придется использовать какой-то дискретный масштаб вместо scale_fill_gradientn
, но мои попытки использовать scale_color_manual()
терпят неудачу:
ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(color = factor(qsec))) +
scale_color_manual(values=c("black", "yellow","red")
Error: Insufficient values in manual scale. 30 needed but only 4 provided.
Я предполагаю, что мне как-то придется использовать cut()
или factor()
, но я не могу понять, как это сделать. Любые предложения?