#r #ggplot2
#r #ggplot2
Вопрос:
Я хочу получить легенду для этих кодов, используя ggplot2, но мне трудно это сделать
Вот мои коды
qote<- function(x,a) {
z<- (x^3 a)-10
return(z)}
m1 <- c(0.5, -.5)
n2 <- c("blue","red")[seq_along(m1)]
gg<- ggplot(data = data.frame(x = c(-2, 2)), aes(x))
theme(legend.position = c(-1,-0.9))
for (i in seq_along(m1)){
gg <- gg stat_function(fun = qote, color=n2[i], args=list(a=m1[i]))
}
gg
Я хочу получить легенду для этих двух кривых внутри графика (вверху слева).:
синяя кривая = Время 1; Красная кривая = время 2. Я хочу сохранить коды, простой код с использованием ggplot2 был бы очень хорош, если это вообще возможно. Пожалуйста, также учтите, что я могу увеличить кривые до 7.
Комментарии:
1. Я не думаю, что этот вопрос заслуживает отрицательного голосования. С удовольствием обновлю его, если вы посоветуете
Ответ №1:
Вы можете сделать это, установив aes(color)
, а затем добавив scale_color_manual
:
ggplot(tibble(x = c(-2, 2)), aes(x))
map(1:length(m1),
~stat_function(fun = qote, aes(color = paste0("Time ", .)), args=list(a=m1[.])))
scale_color_manual("curve legend", values = n2)
* Хорошо использовать цикл for тоже, я просто обнаружил, что с ним легче писать map
.
Редактировать комментарии для каждой операции для версии цикла с измененными условными обозначениями:
qote<- function(x,a) {
z<- (x^3 a)-10
return(z)}
m1 <- c(0.5, -.5)
n2 <- c("blue","red")
gg <- ggplot(data.frame(x = c(-2, 2)), aes(x))
for (i in seq_along(m1)) {
gg <- gg
stat_function(fun = qote, aes_(color = paste0("Time ", i)), args=list(a = m1[i]))
}
gg scale_color_manual("curve legend", values = n2)
Комментарии:
1. Спасибо, как мы могли бы увеличить количество кривых?
2. Это решение будет произвольно масштабироваться с количеством элементов, определенных в
m1
(и, по ассоциации,x
иn2
).3. Извините, у меня это вообще не работает, могу ли я сохранить свои коды
4. Можете ли вы быть более конкретным? Вы хотите сказать, что если вы запустите этот код, он не отобразит показанный график? Что значит «сохранить мои коды»? Рад вносить обновления, просто дайте мне знать, что не работает.
5. Если вы видите мой вопрос, я сказал: «Я хочу сохранить коды, простой код с использованием ggplot2 был бы очень хорош, если это вообще возможно. Пожалуйста, также подумайте, что я могу увеличить кривые до 7. »