Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HELP graph debt by countries

    Hello!

    I am new to stata and need some help in order to graph a few variables. I want to graph the evolution of the public debt of different countries from the OECD in the last five years but I don't know how. Could you please help me? The data I have available is the one below:

    PAIS YR DEUDA
    AUS 2017 66.25739
    AUS 2018 66.92135
    AUS 2019 76.98027
    AUS 2020 92.60758
    AUS 2021 84.38244
    AUT 2017 96.27682
    AUT 2018 90.80019
    AUT 2019 89.13332
    AUT 2020 107.3411
    BEL 2017 120.8399
    BEL 2018 117.7801
    BEL 2019 119.714
    BEL 2020 140.7059
    BEL 2021 127.7692
    CAN 2017 108.5678
    CAN 2018 107.4986
    CAN 2019 106.8954
    CAN 2020 141.8694
    CAN 2021 130.3113
    CZE 2017 43.32781
    CZE 2018 39.73836
    CZE 2019 37.46101
    CZE 2020 46.53848
    DNK 2017 48.98525
    DNK 2018 47.18268
    DNK 2019 48.12441
    DNK 2020 58.1479
    DNK 2021 50.03733
    FIN 2017 73.04077
    FIN 2018 69.94621
    FIN 2019 69.91228
    FIN 2020 81.43575
    FRA 2017 122.9442
    FRA 2018 120.7452
    FRA 2019 123.088
    FRA 2020 145.808
    DEU 2017 72.35247
    DEU 2018 69.07214
    DEU 2019 67.50011
    DEU 2020 78.66212
    GRC 2017 192.9974
    GRC 2018 199.3277
    GRC 2019 200.8267
    GRC 2020 236.8744
    GRC 2021 222.373
    HUN 2017 93.20982
    HUN 2018 86.86371
    HUN 2019 84.07641
    HUN 2020 97.35785
    HUN 2021 88.57599
    IRL 2017 76.69709
    IRL 2018 74.61259
    IRL 2019 68.83617
    IRL 2020 71.58207
    ITA 2017 152.0244
    ITA 2018 146.8379
    ITA 2019 154.0882
    ITA 2020 183.4948
    JPN 2017 230.305
    JPN 2018 234.2955
    JPN 2019 234.5459
    JPN 2020 257.7505
    KOR 2017 49.43649
    KOR 2018 50.41999
    KOR 2019 52.6506
    KOR 2020 58.76943
    LUX 2017 28.96187
    LUX 2018 28.67122
    LUX 2019 30.29885
    LUX 2020 32.61319
    MEX 2017 53.22276
    MEX 2018 55.64329
    MEX 2019 57.89015
    MEX 2020 66.13792
    NLD 2017 70.92296
    NLD 2018 66.0714
    NLD 2019 62.30612
    NLD 2020 69.76221
    NLD 2021 66.19768
    NOR 2017 44.66471
    NOR 2018 45.34084
    NOR 2019 46.8036
    NOR 2020 53.44384
    POL 2017 68.71675
    POL 2018 66.76117
    POL 2019 63.37466
    POL 2020 77.32561
    POL 2021 68.27606
    PRT 2017 143.1314
    PRT 2018 137.2647
    PRT 2019 135.6317
    PRT 2020 157.2174
    PRT 2021 145.4728
    SVK 2017 65.51965
    SVK 2018 63.33213
    SVK 2019 63.03254
    SVK 2020 78.74482
    ESP 2017 115.7774
    ESP 2018 114.5979
    ESP 2019 117.7095
    ESP 2020 147.5054
    ESP 2021 142.5144
    SWE 2017 60.09443
    SWE 2018 59.19948
    SWE 2019 55.86578
    SWE 2020 62.80291
    SWE 2021 59.73473
    CHE 2017 41.89757
    CHE 2018 39.73589
    CHE 2019 39.49329
    CHE 2020 42.94478
    CHE 2021 40.49041
    TUR 2017 32.27594
    TUR 2018 32.27837
    TUR 2019 35.18266
    TUR 2020 42.98997
    GBR 2017 119.1195
    GBR 2018 115.6084
    GBR 2019 118.4764
    GBR 2020 148.9961
    GBR 2021 142.9937
    USA 2017 135.5308
    USA 2018 137.4656
    USA 2019 136.245
    USA 2020 161.4369
    USA 2021 150.3577
    CHL 2017 29.06645
    CHL 2018 31.81245
    CHL 2019 37.77597
    CHL 2020 43.82093
    EST 2017 13.14404
    EST 2018 13.03409
    EST 2019 13.6058
    EST 2020 24.82139
    ISR 2017 74.31145
    ISR 2018 72.40247
    ISR 2019 74.89933
    ISR 2020 87.72168
    SVN 2017 89.43223
    SVN 2018 83.44844
    SVN 2019 81.34025
    SVN 2020 100.2493
    LVA 2017 47.60893
    LVA 2018 46.29624
    LVA 2019 47.51165
    LVA 2020 55.38956
    COL 2017 75.18874
    COL 2018 88.96687
    COL 2019 82.85362
    LTU 2017 47.07026
    LTU 2018 40.82228
    LTU 2019 44.54394
    LTU 2020 55.4529
    NZL 2017 52.96
    NZL 2018 53.05
    NZL 2019 55.33
    BRA 2017 104.39
    BRA 2018 106
    ROU 2017 45.18
    ROU 2018 43.86
    ROU 2019 44.47
    ROU 2020 59.21
    RUS 2017 21.55
    RUS 2018 20.96
    RUS 2019 21.83
    RUS 2020 28.92
    OAVG 2017 81.17
    OAVG 2018 79.4
    OAVG 2019 80
    OAVG 2020 94.31

  • #2
    Rafael, it would be helpful to use -dataex- to show your sample. Below are a simple code and a graph for the first 12 countries. If you have many more countries, then it would be time consuming to plot and I'm not sure it would be an appropriate way of displaying the results.

    Code:
    twoway (line deuda yr), by(pais)
    Click image for larger version

Name:	Graph.png
Views:	1
Size:	367.5 KB
ID:	1668298
    Last edited by Fei Wang; 07 Jun 2022, 23:46.

    Comment


    • #3
      I agree with Fei Wang and go further.

      ! 40-odd countries are too many to plot comfortably. in individual panels. (By the way, alphabetic name order is unlikely to be especially helpful.)

      ! Overlaying all countries may just produce spaghetti

      More positively:

      + If countries are very similar we may not care about the detailed differences much. Grouping similar countries may be a tolerable compromise.

      + Plotting all countries together might be helpful, so long as you don't try to label all. So, no no no to a legend, but yes to some direct labelling.

      Here I ordered countries on their geometric means over the period of record and used logarithmic scale. You can and should make other choices if they seem preferable.


      Code:
      * Example generated by -dataex-. For more info, type help dataex
      clear
      input str4 PAIS double DEUDA int YR
      "EST"  13.14404 2017
      "EST"  13.03409 2018
      "EST"   13.6058 2019
      "EST"  24.82139 2020
      "RUS"     21.55 2017
      "RUS"     20.96 2018
      "RUS"     21.83 2019
      "RUS"     28.92 2020
      "LUX"  28.96187 2017
      "LUX"  28.67122 2018
      "LUX"  30.29885 2019
      "LUX"  32.61319 2020
      "CHL"  29.06645 2017
      "CHL"  31.81245 2018
      "CHL"  37.77597 2019
      "CHL"  43.82093 2020
      "TUR"  32.27594 2017
      "TUR"  32.27837 2018
      "TUR"  35.18266 2019
      "TUR"  42.98997 2020
      "CHE"  41.89757 2017
      "CHE"  39.73589 2018
      "CHE"  39.49329 2019
      "CHE"  42.94478 2020
      "CHE"  40.49041 2021
      "CZE"  43.32781 2017
      "CZE"  39.73836 2018
      "CZE"  37.46101 2019
      "CZE"  46.53848 2020
      "LTU"  47.07026 2017
      "LTU"  40.82228 2018
      "LTU"  44.54394 2019
      "LTU"   55.4529 2020
      "NOR"  44.66471 2017
      "NOR"  45.34084 2018
      "NOR"   46.8036 2019
      "NOR"  53.44384 2020
      "ROU"     45.18 2017
      "ROU"     43.86 2018
      "ROU"     44.47 2019
      "ROU"     59.21 2020
      "LVA"  47.60893 2017
      "LVA"  46.29624 2018
      "LVA"  47.51165 2019
      "LVA"  55.38956 2020
      "DNK"  48.98525 2017
      "DNK"  47.18268 2018
      "DNK"  48.12441 2019
      "DNK"   58.1479 2020
      "DNK"  50.03733 2021
      "KOR"  49.43649 2017
      "KOR"  50.41999 2018
      "KOR"   52.6506 2019
      "KOR"  58.76943 2020
      "NZL"     52.96 2017
      "NZL"     53.05 2018
      "NZL"     55.33 2019
      "MEX"  53.22276 2017
      "MEX"  55.64329 2018
      "MEX"  57.89015 2019
      "MEX"  66.13792 2020
      "SWE"  60.09443 2017
      "SWE"  59.19948 2018
      "SWE"  55.86578 2019
      "SWE"  62.80291 2020
      "SWE"  59.73473 2021
      "NLD"  70.92296 2017
      "NLD"   66.0714 2018
      "NLD"  62.30612 2019
      "NLD"  69.76221 2020
      "NLD"  66.19768 2021
      "SVK"  65.51965 2017
      "SVK"  63.33213 2018
      "SVK"  63.03254 2019
      "SVK"  78.74482 2020
      "POL"  68.71675 2017
      "POL"  66.76117 2018
      "POL"  63.37466 2019
      "POL"  77.32561 2020
      "POL"  68.27606 2021
      "DEU"  72.35247 2017
      "DEU"  69.07214 2018
      "DEU"  67.50011 2019
      "DEU"  78.66212 2020
      "IRL"  76.69709 2017
      "IRL"  74.61259 2018
      "IRL"  68.83617 2019
      "IRL"  71.58207 2020
      "FIN"  73.04077 2017
      "FIN"  69.94621 2018
      "FIN"  69.91228 2019
      "FIN"  81.43575 2020
      "ISR"  74.31145 2017
      "ISR"  72.40247 2018
      "ISR"  74.89933 2019
      "ISR"  87.72168 2020
      "AUS"  66.25739 2017
      "AUS"  66.92135 2018
      "AUS"  76.98027 2019
      "AUS"  92.60758 2020
      "AUS"  84.38244 2021
      "COL"  75.18874 2017
      "COL"  88.96687 2018
      "COL"  82.85362 2019
      "SVN"  89.43223 2017
      "SVN"  83.44844 2018
      "SVN"  81.34025 2019
      "SVN"  100.2493 2020
      "HUN"  93.20982 2017
      "HUN"  86.86371 2018
      "HUN"  84.07641 2019
      "HUN"  97.35785 2020
      "HUN"  88.57599 2021
      "AUT"  96.27682 2017
      "AUT"  90.80019 2018
      "AUT"  89.13332 2019
      "AUT"  107.3411 2020
      "BRA"    104.39 2017
      "BRA"       106 2018
      "CAN"  108.5678 2017
      "CAN"  107.4986 2018
      "CAN"  106.8954 2019
      "CAN"  141.8694 2020
      "CAN"  130.3113 2021
      "BEL"  120.8399 2017
      "BEL"  117.7801 2018
      "BEL"   119.714 2019
      "BEL"  140.7059 2020
      "BEL"  127.7692 2021
      "ESP"  115.7774 2017
      "ESP"  114.5979 2018
      "ESP"  117.7095 2019
      "ESP"  147.5054 2020
      "ESP"  142.5144 2021
      "FRA"  122.9442 2017
      "FRA"  120.7452 2018
      "FRA"   123.088 2019
      "FRA"   145.808 2020
      "GBR"  119.1195 2017
      "GBR"  115.6084 2018
      "GBR"  118.4764 2019
      "GBR"  148.9961 2020
      "GBR"  142.9937 2021
      "PRT"  143.1314 2017
      "PRT"  137.2647 2018
      "PRT"  135.6317 2019
      "PRT"  157.2174 2020
      "PRT"  145.4728 2021
      "USA"  135.5308 2017
      "USA"  137.4656 2018
      "USA"   136.245 2019
      "USA"  161.4369 2020
      "USA"  150.3577 2021
      "ITA"  152.0244 2017
      "ITA"  146.8379 2018
      "ITA"  154.0882 2019
      "ITA"  183.4948 2020
      "GRC"  192.9974 2017
      "GRC"  199.3277 2018
      "GRC"  200.8267 2019
      "GRC"  236.8744 2020
      "GRC"   222.373 2021
      "JPN"   230.305 2017
      "JPN"  234.2955 2018
      "JPN"  234.5459 2019
      "JPN"  257.7505 2020
      "OAVG"    81.17 2017
      "OAVG"     79.4 2018
      "OAVG"       80 2019
      "OAVG"    94.31 2020
      end
      
      * Stata Journal
      myaxis axis = PAIS if PAIS != "OAVG", sort(mean DEUDA) descending
      
      gen group = ceil(axis/5)
      
      gen obs = _n
      forval g = 1/8 {
          local this
          levelsof axis if group == `g'
          foreach c in `r(levels)' {
              su obs if axis == `c', meanonly
              local this `this' `=PAIS[r(min)]'  
          }
          
          label def group `g' "`this'", add
      }
      
      label val group group
      
      set scheme s1color
      line DEUDA YR, by(group,  note("")) xtitle("") c(L) ysc(log) lc(black) yla(10 20 50 100 200, ang(h)) name(G1, replace)
      
      bysort PAIS (YR) : gen last = YR == YR[_N]
      
      egen rank = rank(-DEUDA) if last & PAIS != "OAVG"
      bysort PAIS (rank) : replace rank = rank[1]
      
      gen toshow = rank < 5 | rank > 35 & rank < .
      
      sort PAIS YR
      line DEUDA YR, c(L) lc(black) ///
      || scatter DEUDA YR if YR == 2017 & toshow, ms(none) mla(PAIS) mlabpos(9) mlabc(blue) ///
      || scatter DEUDA YR if last & toshow, ms(none) mla(PAIS) mlabc(blue) ysc(log) xsc(r(2016.5 2021.5)) yla(10 20 50 100 200, ang(h)) legend(off) xtitle("") name(G2, replace)
      Click image for larger version

Name:	DEUDA_G1.png
Views:	1
Size:	51.1 KB
ID:	1668317

      Click image for larger version

Name:	DEUDA_G2.png
Views:	1
Size:	94.5 KB
ID:	1668318

      Last edited by Nick Cox; 08 Jun 2022, 04:21.

      Comment

      Working...
      X