График графика изнутри Мата - PullRequest
2 голосов
/ 24 июня 2019

Рассмотрим следующую игрушечную матрицу в mata:

mata: A

            1       2
     +-----------------+
   1 |   6555     140  |
   2 |   7205     135  |
   3 |   6255     140  |
   4 |   7272     138  |
   5 |  10283     133  |
   6 |   8244     136  |
   7 |   6909     144  |
   8 |   7645     138  |
   9 |  12828     134  |
  10 |   6538     137  |
     +-----------------+

Если я хочу нарисовать график рассеяния, используя эту матрицу, мне сначала нужно перенести его в Stata, а затем также преобразовать его в переменные с помощью команды svmat:

mata: st_matrix("A", A)

svmat A
list, separator(0)

     +-------------+
     |    A1    A2 |
     |-------------|
  1. |  6555   140 |
  2. |  7205   135 |
  3. |  6255   140 |
  4. |  7272   138 |
  5. | 10283   133 |
  6. |  8244   136 |
  7. |  6909   144 |
  8. |  7645   138 |
  9. | 12828   134 |
 10. |  6538   137 |
     +-------------+

twoway scatter A1 A2

Есть ли способ напрямую нарисовать график, не оставляя mata?

Ответы [ 2 ]

3 голосов
/ 24 июня 2019

Можно построить матрицу mata без предварительного преобразования ее в переменные Stata следующим образом:

twoway scatter matamatrix(A)

Подробнее см. help twoway_mata.


Редактирование @PearlySpencer:

Это можно запустить непосредственно из mata с помощью функции stata():

mata: stata("twoway scatter matamatrix(A)")
2 голосов
/ 25 июня 2019

Альтернативный подход заключается в использовании функции сообщества mata mm_plot():

mata: mm_plot(A, "scatter")

Это часть коллекции функций moremata, поэтому ее необходимо сначала загрузить:

ssc install moremata
...