У меня есть кадр данных, как этотggplot набор scale_color_gradientn вручную
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
, и я хочу, чтобы построить BP против log10, и цвет точек на R2. R2 - непрерывные значения от 0-1.
myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point()
Пока что так хорошо. Однако я хотел бы отображать цвета R2 в выбранных вручную интервалах и цветах, например (если бы у меня были дискретные значения).
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
Это выглядит красиво, но я бы предпочел установить цвета сам.
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) +
scale_colour_gradientn(colours = rainbow(10))
Итак, как я могу вручную выбрать интервалы из непрерывных значений (1-0.8, 0.8-0.6, 0,6-0,4, 0.4-0.2, 0.2-0), и цвет их по своему вкусу (красный, желтый , зеленый, светлый, темно-синий)? Гладкий градиент между цветами был бы крутым, но не решающим.
Большое спасибо Didzis, что полностью решает! У вас также есть решение без градиентов, поэтому все значения от 1-0.8 = красный, 0.8-0.6 = желтый и т. Д.? – user2724998
Затем вы должны разделить свои данные интервалами с помощью функции cut() и использовать эти интервалы как дискретные значения. –
Хорошо, еще раз спасибо! – user2724998