#r #ggplot2
#r #ggplot2
Вопрос:
Я хочу сделать некоторый линейный график, разделенный по моделям.
Вот мой код фрейма данных:
Jumping = c(0.99,0.97,0.99,1,1)
Lunge = c(0.89,0.99,0.99 ,1,1)
Squat = c(0.97,0.99,0.99,1,1)
Stand = c(0.95,0.99, 1,1,1)
Standing_abs = c(1,0.97,0.99,0.99,0.97)
action = c("Jumping","Lunge","Squat","Stand","Standing_abs")
model = c("Knn","Dt","DNN","RF","rbf_SVM")
result = data.frame(Jumping,Lunge,Squat,Stand,Standing_abs,row.names = model)
result
и
результат>
Jumping Lunge Squat Stand Standing_abs
Knn 0.29 0.39 0.97 0.65 0.60
Dt 0.97 0.69 0.88 0.99 0.97
DNN 0.99 0.79 0.49 1.00 0.59
RF 1.00 0.77 1.00 0.91 0.39
rbf_SVM 1.00 1.00 1.00 0.58 0.97
Но есть некоторая проблема. Результат, который я хотел, был таким..
Как я могу сделать линейный график, подобный изображению, разделенным моделями? Хорошего дня!
Комментарии:
1. Сначала вам необходимо преобразовать ваши данные в длинный формат. Вам нужны столбцы
Model
,Activity
,Value
и 25 строк.
Ответ №1:
require(rtidy)
require(ggplot2)
result %>%
add_rownames("model") %>%
gather("Activity","value",-model) %>%
ggplot(aes(x=Activity,y=value,color=model,group=model)) geom_line()
Ответ №2:
Вы можете перенести данные и использовать pivot_longer
для создания строк для каждой модели.
Попробуйте:
library(tidyverse)
data <- t(result) %>% as.data.frame %>%
rownames_to_column() %>%
pivot_longer(cols = rownames(result),names_to = "model")
ggplot(data) geom_line(aes(group = model, x=rowname,y=value,color=model)) xlab('Exercice')