Вы можете перевести это в ggplot?

В общем, я хотел бы использовать функцию ggplot geom_line + geom_point для создания тех же графиков, но с более красивой графикой.

> a
          V1        V2        V3 
1  0.8224887 0.7882316 0.7596440 
2  0.7892779 0.7604186 0.7409430 
3  0.8254516 0.8257800 0.8014778 
4  0.8268519 0.7887464 0.7887322 
5  0.8226651 0.7981079 0.7934783 


plot(6:10, a$V1, type="l", xlab="Folds", ylab="Accuracy", col="Blue",ylim=c(0.7,0.9))
par(new=TRUE) 
plot(6:10, a$V2, type="l", xlab="Folds", ylab="Accuracy", col="Orange",ylim=c(0.7,0.9))
par(new=TRUE) 
plot(6:10, a$V3, type="l", xlab="Folds", ylab="Accuracy", col="Green",ylim=c(0.7,0.9))

Моя главная цель - получить легенду, которая поможет различать каждую переменную.

Я попытался нарисовать только первую строку:

ggplot(data = a)+
  theme_classic()+
  geom_line(aes(x=6:10, y = a$V1, color = "blue"))

Проблема в том, что я даже не получаю желаемого цвета.

Спасибо за чтение и помощь!


person Antonio Mastroianni    schedule 31.05.2020    source источник
comment
Вы должны передать аргумент цвета вне aes (). geom_line(aes(x=6:10, y=a$v1), color = 'blue') Обратите внимание, что вы также можете передать аргумент внутри функции aes(), но он должен отображаться в некоторый столбец во фрейме данных. Скажем, например, если у вас есть столбец категории в вашем фрейме данных, вы можете передать color = category, и ggplot автоматически построит линии с разными цветами в зависимости от количества категорий.   -  person monte    schedule 31.05.2020


Ответы (1)


library(tidyverse)

originalData <- tibble(
  V1=c(0.8224887, 0.7892779, 0.8254516, 0.8268519, 0.8226651),
  V2=c(0.7882316, 0.7604186, 0.8257800, 0.7887464, 0.7981079), 
  V3=c(0.7596440, 0.7409430, 0.8014778, 0.7887322, 0.7934783)
)

# ggplot works best if your data is 'tidy'
tidyData <- originalData %>% 
              pivot_longer(cols=c(V1, V2, V3), names_to="Variable") %>% 
              add_column(X=rep(6:10, each=3))

tidyData

tidyData %>% 
  ggplot(aes(x=X, y=value, colour=Variable)) +
    geom_line() + 
    theme_classic()

Давая

введите здесь описание изображения

Отсюда вы можете настроить свой сюжет по своему усмотрению.

person Limey    schedule 31.05.2020