Постройте две матрицы в одну с помощью ggplot - PullRequest
0 голосов
/ 07 мая 2020

Я построил 2 матрицы в один график с помощью matplot (), я не понимаю, как эквивалент ggplot. Вот матрицы:

Матрица A: попытка набрать очки в футбольном матче

       John   Mike   Luc
2010    20    30      25
2011    13    22      18
2012    10    20      14

Матрица B: Количество игр

       John   Mike   Luc
2010    10    15      12
2011     5     8       7
2012     2     8       3

Следующий код работает отлично

a <- Score_Attempts
b <- Num_Of_Games
matplot(a, b, type = "l", xlab = "Score attempt", ylab = "Number of game")
legend("bottomright", legend = colnames(a), col = seq_len(a),  pch = 1, cex = 0.7)

Что-то не так с эквивалентом ggplot. Помогите мне сделать это правильно, спасибо!

data <- data.frame(ScoreAttempt = as.vector(a),
                     NumOfGame = as.vector(b))

ggplot(data, mapping = aes(x = ScoreAttempt, y = NumOfGame ))
  labs(x="Score attempt", y= "Number of game") +
  geom_line(size = 2)

1 Ответ

0 голосов
/ 07 мая 2020

Во-первых, ваши labs() и geom_line() не подключены к ggplot() из-за отсутствия знака +.

Пытался воспроизвести ваш код следующим образом

a <- matrix( c(20,30,25,13,22,18,10,20,14), ncol=3, byrow=TRUE )
dimnames(a) <- list( 2010:2012, c("John","Mike","Luc") )

b <- matrix( c(10,15,12,5,8,7,2,8,3), ncol=3, byrow=TRUE )
dimnames(b) <- list( 2010:2012, c("John","Mike","Luc") )

matplot(a, b, type = "l", xlab = "Score attempt", ylab = "Number of game")
legend("bottomright", legend = colnames(a), col = seq_len(a),  pch = 1, cex = 0.7)

для создания этого

enter image description here

Предполагая, что изображение выше правильное, вам понадобятся некоторые дополнительные данные, чтобы воссоздать его через ggplot2

data <- data.frame( Individual=rep(c("John","Mike","Luc"),each=3),
                    Year=rep(2010:2012,3),
                    ScoreAttempt = as.vector(a),
                    NumOfGame = as.vector(b) )

ggplot(data, mapping = aes(x = ScoreAttempt, y = NumOfGame, color=Individual, group=Individual ) ) +
  labs(x="Score attempt", y= "Number of game") +
  geom_line(size = 2)

, чтобы получить это

enter image description here

Теперь вам просто нужно точно настроить все масштабирование, чтобы получить то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...