Я новичок в R. Моя цель - создать приятный сюжет с использованием регрессионных линий и эллипса уверенности. Мне удалось научить себя, как создавать xy-графики, линии регрессии и круги, используя ggplot2, но теперь я застрял в цветах.R/ggplot2: застрял с определяющими цветами
В моем примере со случайными числами у меня есть 4 группы данных, и я хочу изменить цвета. Мне удалось изменить их с помощью colorbrewer, но мне не нравятся любые их пресеты и я хочу определить свои собственные.
Вот мой код, до сих пор с ColorBrewer:
столlibrary(ggplot2)
data = read.csv("test.csv")
data$type <- factor(data$type, levels=c("bbb","ccc","aaa","ddd"))
g = aes(x=alpha, y=beta, color=type, group=type)
p_test <- ggplot(subset(data, id %in% c("a1", "b1"))) +
geom_point(g) +
stat_ellipse(g) +
geom_smooth(g, method=lm, se=FALSE) +
scale_color_brewer(palette="Set3") +
expand_limits(x=c(1,11), y=c(1,11)) +
xlab(expression(paste(italic(blah[p]), " in q ", r^-1))) +
ylab(expression(paste(lambda, " in K ", l^-2*M^-3))) +
ggtitle("blahblah") +
theme(legend.justification=c(0,1), legend.position=c(0,1), legend.title=element_blank())
данные, как это:
> data
id alpha beta type
1 a1 1.2 1.1 aaa
2 a1 6.6 3.4 bbb
3 a1 3.7 6.4 ccc
4 a1 2.7 6.4 aaa
5 a1 5.3 6.3 bbb
6 a1 4.5 8.1 ccc
7 a1 10.5 9.0 bbb
8 a1 9.9 5.3 aaa
9 a1 2.8 5.3 bbb
10 a1 5.4 1.6 ccc
11 a1 3.4 10.7 aaa
12 a1 8.0 4.0 bbb
13 a1 6.1 6.5 ccc
14 a1 8.8 9.0 bbb
15 a1 8.1 1.1 aaa
16 a1 4.2 3.8 bbb
17 a1 9.1 1.2 ccc
18 a1 4.4 2.3 aaa
19 a1 8.8 7.8 bbb
20 a1 11.0 2.5 ccc
21 a1 7.0 9.4 bbb
22 b1 9.5 7.8 ddd
23 b1 7.6 4.5 ddd
24 b1 10.8 7.5 ddd
25 b1 5.6 4.5 ddd
26 b1 8.9 11.0 ddd
27 c1 8.1 7.0 fff
28 c1 7.5 9.3 fff
29 c1 3.1 6.0 ggg
Затем я попытался изменить цвет. И вот где мои проблемы начинаются:
1.) Сначала я хотел попробовать градиент радуги. Поэтому я заменил
scale_color_brewer(palette="Set3") +
с
scale_colour_gradientn(colours=rainbow(4)) +
Который дал мне ошибку «дискретное значение подается на непрерывную шкалу». Что это значит?
2.) Затем я попытался определения фиксированных цветов с помощью
scale_fill_manual(values=c("red", "blue", "green", "orange")) +
Возвращаемый сюжет, но не с определенными цветами. Они похожи на значения по умолчанию? Почему?
3.) Наконец, я попытался определить свой собственный градиент. Я хочу, чтобы он варьировался от желтого до красного. Таким образом, я использовал
scale_colour_gradientn(colours=c("yellow", "red")) +
Который также привел к ошибке: Дискретное значение, подаваемое на непрерывный масштаб.
Тогда я сдался.
Может кто-нибудь, пожалуйста, просветит меня, что я делаю неправильно? Почему работает цветной пивовар, но не все остальное?
Вы хотите # 2, но это должно быть 'scale_colour_manual', а не' scale_fill_manual', как вы пытаетесь установить цвет, а не заливка. Градиенты не работают, потому что вы передаете им категориальные данные ('type'), поэтому для определения градиента нет чисел. – alistaire
Несвязанный: вам нужно всего лишь установить сопоставление ('aes') один раз в' ggplot', а все остальное наследует, если вы не переопределите новое сопоставление. – alistaire
Спасибо alistaire! – Philipp