R: Как я могу отобразить правильные значения оси x в ggplot после расплавления матрицы

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть следующий набор данных, называемый payoffs .

 dput(payoffs)
structure(c(8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 0, 0, 0, 
0, -0.5, -1, -1, -1, -1, 2, 1.5, 1, 0.5, 0, 0.5, 1, 1.5, 2), .Dim = c(9L, 
3L), .Dimnames = list(NULL, c("s", "strat1", "strat2")))
  

Моя цель — отобразить 2-й и 3-й столбцы в 2 разных строках в ggplot по оси y, а первым столбцом будет ось x. Итак, я использую melt функцию следующим образом:

 m_payoffs <- melt(payoffs, id= c(2,3)) 
  

Однако я не знаю, как я могу отобразить 2 столбца «strat1» и «strat2» с правильной осью x сейчас? Предполагается, что моя ось x x <- seq(8,12,by=0.5) равна. Может кто-нибудь любезно показать мне, что я могу отобразить 2 столбца с помощью ggplot, сохранив правильную ось x в ggplot, пожалуйста? Спасибо.

     Var1   Var2 value
1     1      s   8.0
2     2      s   8.5
3     3      s   9.0
4     4      s   9.5
5     5      s  10.0
6     6      s  10.5
7     7      s  11.0
8     8      s  11.5
9     9      s  12.0
10    1 strat1   0.0
11    2 strat1   0.0
12    3 strat1   0.0
13    4 strat1   0.0
14    5 strat1  -0.5
15    6 strat1  -1.0
16    7 strat1  -1.0
17    8 strat1  -1.0
18    9 strat1  -1.0
19    1 strat2   2.0
20    2 strat2   1.5
21    3 strat2   1.0
22    4 strat2   0.5
23    5 strat2   0.0
24    6 strat2   0.5
25    7 strat2   1.0
26    8 strat2   1.5
27    9 strat2   2.0
  

Комментарии:

1. Похоже, вы неправильно плавите. Я думаю, вы хотите m_payoffs <- melt(payoffs, id= 1) . Вы хотите, чтобы ваша ось x находилась в одном столбце, а ваша ось y — в другом столбце (в данном случае в третьем столбце указывается группировка разных строк).

2. ДА. Я попробовал это. Но тогда как я могу отобразить эти 2 столбца в ggplot? Похоже, что после этого оба моих значения по оси x и оси y находятся в одном столбце.

3. О, только что понял, что у вас есть матрица. Используйте m_payoffs <- melt(as.data.frame(payoffs), id= 1)