Announcement

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

  • A Problem with connected plot

    Dear all,

    I have a dataset below, composed of the region, year, and value. Normally, when I make a connected graph, I have each region's value as an independent column, and the code is like this:

    Code:
    twoway (connected asia year)(connected Africa year)(connected europe year)
    However, in my dataset below, I don't want to copy-paste and create new columns manually, instead, I want to automatically generate a connected graph, based on the data available below. Or is there a handy way of automatically generating new columns based on each region's value for specific years? (without copy-pasting)

    Thank you so much,

    Best,

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input str22 regions int year float percent
    "Africa"                 2002  85.17632
    "Africa"                 2003  79.51936
    "Africa"                 2004  83.43472
    "Africa"                 2005  46.13064
    "Africa"                 2006  44.20268
    "Africa"                 2007  46.07319
    "Africa"                 2008  44.70668
    "Africa"                 2009  43.12626
    "Africa"                 2010  43.63366
    "Africa"                 2011  36.20064
    "Africa"                 2012  41.24461
    "Africa"                 2013 37.146824
    "Africa"                 2014  39.44272
    "Africa"                 2015 36.002865
    "Africa"                 2016 36.622124
    "Africa"                 2017  36.33076
    "Africa"                 2018 37.235317
    "Africa"                 2019  42.04245
    "Africa"                 2020  40.90646
    "America"                2002  3.500117
    "America"                2003  3.934545
    "America"                2004  5.955437
    "America"                2005  8.889876
    "America"                2006  8.688569
    "America"                2007   9.34407
    "America"                2008  8.561049
    "America"                2009  8.548162
    "America"                2010 10.196347
    "America"                2011  7.605177
    "America"                2012  6.895785
    "America"                2013  6.745145
    "America"                2014  5.685211
    "America"                2015  7.563207
    "America"                2016  6.287817
    "America"                2017  7.283136
    "America"                2018  7.202162
    "America"                2019  5.270456
    "America"                2020   6.00174
    "Asia (w/o Middle-East)" 2002         0
    "Asia (w/o Middle-East)" 2003 1.4860897
    "Asia (w/o Middle-East)" 2004         0
    "Asia (w/o Middle-East)" 2005 12.642322
    "Asia (w/o Middle-East)" 2006 12.319653
    "Asia (w/o Middle-East)" 2007 11.189074
    "Asia (w/o Middle-East)" 2008 12.417957
    "Asia (w/o Middle-East)" 2009 12.358888
    "Asia (w/o Middle-East)" 2010 12.593313
    "Asia (w/o Middle-East)" 2011  11.73253
    "Asia (w/o Middle-East)" 2012  9.272342
    "Asia (w/o Middle-East)" 2013  9.475549
    "Asia (w/o Middle-East)" 2014  8.578097
    "Asia (w/o Middle-East)" 2015  11.97774
    "Asia (w/o Middle-East)" 2016 11.692198
    "Asia (w/o Middle-East)" 2017 12.285928
    "Asia (w/o Middle-East)" 2018 12.449587
    "Asia (w/o Middle-East)" 2019 10.721766
    "Asia (w/o Middle-East)" 2020  11.89148
    "Europe"                 2002         .
    "Europe"                 2003 1.2007693
    "Europe"                 2004         0
    "Europe"                 2005  12.30139
    "Europe"                 2006  13.46489
    "Europe"                 2007 12.825014
    "Europe"                 2008  13.91023
    "Europe"                 2009 17.804235
    "Europe"                 2010 15.739152
    "Europe"                 2011  31.67814
    "Europe"                 2012  30.99681
    "Europe"                 2013  31.76924
    "Europe"                 2014  31.45511
    "Europe"                 2015 28.392185
    "Europe"                 2016  29.45614
    "Europe"                 2017 26.051006
    "Europe"                 2018  22.60656
    "Europe"                 2019  21.57816
    "Europe"                 2020 23.611736
    "Middle East"            2002         0
    "Middle East"            2003 .59221643
    "Middle East"            2004         0
    "Middle East"            2005  5.858264
    "Middle East"            2006  9.175097
    "Middle East"            2007  7.451975
    "Middle East"            2008  7.945778
    "Middle East"            2009  6.374172
    "Middle East"            2010  6.231583
    "Middle East"            2011 4.4821134
    "Middle East"            2012  4.335175
    "Middle East"            2013  7.054042
    "Middle East"            2014  6.882815
    "Middle East"            2015  7.979837
    "Middle East"            2016   8.19168
    "Middle East"            2017  7.772645
    "Middle East"            2018  8.790713
    "Middle East"            2019  8.470904
    "Middle East"            2020  7.209192
    "Ocenia"                 2002         0
    "Ocenia"                 2003 2.0340345
    "Ocenia"                 2004 2.4081006
    "Ocenia"                 2005 1.0007294
    "Ocenia"                 2006  .8274303
    end
    ------------------ copy up to and including the previous line ------------------

    Listed 100 out of 114 observations
    Use the count() option to list more

  • #2
    It's possible to use "if" to achieve that without creating new variables. Here is an example:

    Code:
    twoway connected percent year if regions == "Africa" || ///
           connected percent year if regions == "America" || ///
           connected percent year if regions == "Asia (w/o Middle-East)" || ///
           connected percent year if regions == "Europe" || ///
           connected percent year if regions == "Middle East" || ///
           connected percent year if regions == "Ocenia", ///
           legend(label (1 "Afr") label (2 "Am")  label (3 "Asia") ///
           label (4 "Eur") label (5 "Mid East") label (6 "Oce") col(3))
    And just for completion, I'd like to address the original question as well. Yes, it's possible to spread the percent across. There are multiple ways. Here is a "wrong" use of reshape wide:

    Code:
    encode regions, gen(nreg)
    reshape wide percent, i(regions year) j(nreg)
    Last edited by Ken Chui; 21 May 2022, 10:08.

    Comment


    • #3
      Ken Chui gave a nice solution. Here are some more ideas. separate can be useful, but in this case the ensuing graph is fairly horrible.. so not shown here.

      I've corrected a typo in the dataset.


      Code:
      * Example generated by -dataex-. For more info, type help dataex
      clear
      input str22 regions int year float percent
      "Africa"                 2002  85.17632
      "Africa"                 2003  79.51936
      "Africa"                 2004  83.43472
      "Africa"                 2005  46.13064
      "Africa"                 2006  44.20268
      "Africa"                 2007  46.07319
      "Africa"                 2008  44.70668
      "Africa"                 2009  43.12626
      "Africa"                 2010  43.63366
      "Africa"                 2011  36.20064
      "Africa"                 2012  41.24461
      "Africa"                 2013 37.146824
      "Africa"                 2014  39.44272
      "Africa"                 2015 36.002865
      "Africa"                 2016 36.622124
      "Africa"                 2017  36.33076
      "Africa"                 2018 37.235317
      "Africa"                 2019  42.04245
      "Africa"                 2020  40.90646
      "America"                2002  3.500117
      "America"                2003  3.934545
      "America"                2004  5.955437
      "America"                2005  8.889876
      "America"                2006  8.688569
      "America"                2007   9.34407
      "America"                2008  8.561049
      "America"                2009  8.548162
      "America"                2010 10.196347
      "America"                2011  7.605177
      "America"                2012  6.895785
      "America"                2013  6.745145
      "America"                2014  5.685211
      "America"                2015  7.563207
      "America"                2016  6.287817
      "America"                2017  7.283136
      "America"                2018  7.202162
      "America"                2019  5.270456
      "America"                2020   6.00174
      "Asia (w/o Middle-East)" 2002         0
      "Asia (w/o Middle-East)" 2003 1.4860897
      "Asia (w/o Middle-East)" 2004         0
      "Asia (w/o Middle-East)" 2005 12.642322
      "Asia (w/o Middle-East)" 2006 12.319653
      "Asia (w/o Middle-East)" 2007 11.189074
      "Asia (w/o Middle-East)" 2008 12.417957
      "Asia (w/o Middle-East)" 2009 12.358888
      "Asia (w/o Middle-East)" 2010 12.593313
      "Asia (w/o Middle-East)" 2011  11.73253
      "Asia (w/o Middle-East)" 2012  9.272342
      "Asia (w/o Middle-East)" 2013  9.475549
      "Asia (w/o Middle-East)" 2014  8.578097
      "Asia (w/o Middle-East)" 2015  11.97774
      "Asia (w/o Middle-East)" 2016 11.692198
      "Asia (w/o Middle-East)" 2017 12.285928
      "Asia (w/o Middle-East)" 2018 12.449587
      "Asia (w/o Middle-East)" 2019 10.721766
      "Asia (w/o Middle-East)" 2020  11.89148
      "Europe"                 2002         .
      "Europe"                 2003 1.2007693
      "Europe"                 2004         0
      "Europe"                 2005  12.30139
      "Europe"                 2006  13.46489
      "Europe"                 2007 12.825014
      "Europe"                 2008  13.91023
      "Europe"                 2009 17.804235
      "Europe"                 2010 15.739152
      "Europe"                 2011  31.67814
      "Europe"                 2012  30.99681
      "Europe"                 2013  31.76924
      "Europe"                 2014  31.45511
      "Europe"                 2015 28.392185
      "Europe"                 2016  29.45614
      "Europe"                 2017 26.051006
      "Europe"                 2018  22.60656
      "Europe"                 2019  21.57816
      "Europe"                 2020 23.611736
      "Middle East"            2002         0
      "Middle East"            2003 .59221643
      "Middle East"            2004         0
      "Middle East"            2005  5.858264
      "Middle East"            2006  9.175097
      "Middle East"            2007  7.451975
      "Middle East"            2008  7.945778
      "Middle East"            2009  6.374172
      "Middle East"            2010  6.231583
      "Middle East"            2011 4.4821134
      "Middle East"            2012  4.335175
      "Middle East"            2013  7.054042
      "Middle East"            2014  6.882815
      "Middle East"            2015  7.979837
      "Middle East"            2016   8.19168
      "Middle East"            2017  7.772645
      "Middle East"            2018  8.790713
      "Middle East"            2019  8.470904
      "Middle East"            2020  7.209192
      "Oceania"                 2002         0
      "Oceania"                 2003 2.0340345
      "Oceania"                 2004 2.4081006
      "Oceania"                 2005 1.0007294
      "Oceania"                 2006  .8274303
      end
      
      set scheme s1color 
      
      * myaxis is from the Stata Journal 
      myaxis order=regions, sort(mean percent) descending 
      
      local xopts xla(2002(3)2020) xtitle("")
      
      local xopts2 xla(2002(3)2020, format(%tyYY)) xtitle("")
      
      separate percent, by(order) veryshortlabel 
      
      twoway connected percent? year , `xopts'
      
      * ,multiline is from SSC 
      multiline percent? year , missing `xopts' name(percent1, replace)
      
      * fabplot is from the Stata Journal 
      fabplot line percent year, by(order) front(connected) `xopts2' name(percent2, replace)
      
      * tabplot is from the Stata Journal 
      tabplot order year [iw=percent], showval(format(%1.0f)) xasis `xopts' ytitle("") separate(regions) barw(0.9) name(percent3, replace)

      Graphs below from multiline fabplot tabplot


      Click image for larger version

Name:	percent1.png
Views:	1
Size:	35.1 KB
ID:	1665674



      Click image for larger version

Name:	percent2.png
Views:	1
Size:	73.1 KB
ID:	1665675
      Click image for larger version

Name:	percent3.png
Views:	1
Size:	34.0 KB
ID:	1665676

      Comment


      • #4
        Dear Ken Chui and Nick Cox

        Your solutions really helped me a lot. But, I want to ask another question Nick Cox,

        Nick's "fabplot" is striking for me, because it simplifies complex graphics. I need a similar solution for a wide-format data as below. How can I apply fabplot solution for wide-format? When I run my commands, I got a lot of syntax errors. I want to have a fabplot for each country's percent of aid to Africa.

        Code:
        * Example generated by -dataex-. For more info, type help dataex
        clear
        input float(time germantperafrica ukafricaper swedishaffper franceaffper euafricaper neterperafrica)
        2000         .         .  32.12938         . 32.651512 26.813385
        2001         .         .  29.17677         .   39.3174  38.33671
        2002  26.18772  33.93139  32.18399 74.357155  40.82576  39.01805
        2003  43.22282  44.14436  38.39015  68.13147  45.45539  36.31383
        2004   30.3133  48.95535 32.574627  72.79045  44.46368  45.87014
        2005 34.267654  51.73958 35.375908  65.55617  45.14848  38.62457
        2006  45.59299  67.30754  31.07698  65.67448   43.0117   31.3475
        2007 27.988686 38.073322 34.129158  57.85427  45.76632  36.10642
        2008 31.785494 35.313072  32.65278  52.28578  44.73254 29.158697
        2009 27.482796  38.29399 30.391184   57.7574  43.09824  25.35075
        2010  23.33922  38.32915 29.852076  51.23574  44.09679  28.28126
        2011 27.828405  39.99601 37.014477  55.40661 35.416862   22.5777
        2012  31.49708  41.44385 33.027645  53.42841  41.58309  19.27589
        2013 26.863773 37.949303 29.798025  49.31869 37.915318  23.52936
        2014 23.470797  39.49032 25.531466  46.02666  41.10809 18.885952
        2015  21.42753 36.067783 18.085627   45.5584   38.2148 15.265451
        2016 18.450304  33.38219  24.40148   43.3926  37.59255 20.986845
        2017 18.907501  33.83401 27.000746  40.39903  39.40042 20.265574
        2018 21.965807 30.850166  30.97862  40.17007  39.81797  22.13328
        2019 24.717125  28.95965 32.607727  41.28355  45.80464  21.72033
        2020 25.549534 27.122955  32.98334  40.07142  44.10706 20.277905
        end

        Comment


        • #5
          fabplot essentially assumes standard Stata conventions here, that you a long layout for panel data, with a single grouping variable Otherwise, the by() option does. not apply.

          You need to reshape long but before that you'd need to clean up your variable names.

          Here is the renaming done crudely.

          Code:
          * Example generated by -dataex-. For more info, type help dataex
          clear
          input float(time germantperafrica ukafricaper swedishaffper franceaffper euafricaper neterperafrica)
          2000         .         .  32.12938         . 32.651512 26.813385
          2001         .         .  29.17677         .   39.3174  38.33671
          2002  26.18772  33.93139  32.18399 74.357155  40.82576  39.01805
          2003  43.22282  44.14436  38.39015  68.13147  45.45539  36.31383
          2004   30.3133  48.95535 32.574627  72.79045  44.46368  45.87014
          2005 34.267654  51.73958 35.375908  65.55617  45.14848  38.62457
          2006  45.59299  67.30754  31.07698  65.67448   43.0117   31.3475
          2007 27.988686 38.073322 34.129158  57.85427  45.76632  36.10642
          2008 31.785494 35.313072  32.65278  52.28578  44.73254 29.158697
          2009 27.482796  38.29399 30.391184   57.7574  43.09824  25.35075
          2010  23.33922  38.32915 29.852076  51.23574  44.09679  28.28126
          2011 27.828405  39.99601 37.014477  55.40661 35.416862   22.5777
          2012  31.49708  41.44385 33.027645  53.42841  41.58309  19.27589
          2013 26.863773 37.949303 29.798025  49.31869 37.915318  23.52936
          2014 23.470797  39.49032 25.531466  46.02666  41.10809 18.885952
          2015  21.42753 36.067783 18.085627   45.5584   38.2148 15.265451
          2016 18.450304  33.38219  24.40148   43.3926  37.59255 20.986845
          2017 18.907501  33.83401 27.000746  40.39903  39.40042 20.265574
          2018 21.965807 30.850166  30.97862  40.17007  39.81797  22.13328
          2019 24.717125  28.95965 32.607727  41.28355  45.80464  21.72033
          2020 25.549534 27.122955  32.98334  40.07142  44.10706 20.277905
          end
          
          ds time, not 
          rename (`r(varlist)') (A B C D E F) 
          rename (?) (per=)
          reshape long per, i(time) j(whatever) string 
          myaxis order=whatever, sort(mean per) descending 
          fabplot line per time, by(order) front(connected)

          Comment


          • #6
            THANK YOU so much Nick,
            Best,

            Comment


            • #7
              Dear Nick Cox

              I have a dataset below. Now, I am trying to use fabplot as you showed. However, because this is panel data, there are repeated regions for each country. Therefore, in order to use fabplot, I need to group regions and years, and get the sum of "euodatotal" next to the id-year unit. How can I use fabplot in a time-series data with repeated regions? Can you help me to handle this?

              Best,

              Code:
              * Example generated by -dataex-. For more info, type help dataex
              clear
              input str60 recipient float(iso year) str3 ccode float euodatotal str8 region
              "Afghanistan"  4 2000 "AFG"  30.01 "Asia"  
              "Afghanistan"  4 2001 "AFG"  77.83 "Asia"  
              "Afghanistan"  4 2002 "AFG" 226.56 "Asia"  
              "Afghanistan"  4 2003 "AFG" 267.59 "Asia"  
              "Afghanistan"  4 2004 "AFG" 243.26 "Asia"  
              "Afghanistan"  4 2005 "AFG" 288.98 "Asia"  
              "Afghanistan"  4 2006 "AFG"  241.5 "Asia"  
              "Afghanistan"  4 2007 "AFG"  300.9 "Asia"  
              "Afghanistan"  4 2008 "AFG" 318.05 "Asia"  
              "Afghanistan"  4 2009 "AFG" 369.53 "Asia"  
              "Afghanistan"  4 2010 "AFG"  278.3 "Asia"  
              "Afghanistan"  4 2011 "AFG"  334.5 "Asia"  
              "Afghanistan"  4 2012 "AFG" 252.24 "Asia"  
              "Afghanistan"  4 2013 "AFG" 235.15 "Asia"  
              "Afghanistan"  4 2014 "AFG" 334.45 "Asia"  
              "Afghanistan"  4 2015 "AFG" 211.39 "Asia"  
              "Afghanistan"  4 2016 "AFG" 436.96 "Asia"  
              "Afghanistan"  4 2017 "AFG" 439.93 "Asia"  
              "Afghanistan"  4 2018 "AFG" 459.73 "Asia"  
              "Afghanistan"  4 2019 "AFG" 429.81 "Asia"  
              "Afghanistan"  4 2020 "AFG" 368.86 "Asia"  
              "Albania"      8 2000 "ALB" 147.37 "Europe"
              "Albania"      8 2001 "ALB" 109.78 "Europe"
              "Albania"      8 2002 "ALB"  48.27 "Europe"
              "Albania"      8 2003 "ALB"  43.62 "Europe"
              "Albania"      8 2004 "ALB"  50.75 "Europe"
              "Albania"      8 2005 "ALB"  87.56 "Europe"
              "Albania"      8 2006 "ALB"  78.06 "Europe"
              "Albania"      8 2007 "ALB"  49.24 "Europe"
              "Albania"      8 2008 "ALB"  54.99 "Europe"
              "Albania"      8 2009 "ALB"  64.75 "Europe"
              "Albania"      8 2010 "ALB"  73.18 "Europe"
              "Albania"      8 2011 "ALB" 117.73 "Europe"
              "Albania"      8 2012 "ALB" 125.39 "Europe"
              "Albania"      8 2013 "ALB"  91.29 "Europe"
              "Albania"      8 2014 "ALB" 106.78 "Europe"
              "Albania"      8 2015 "ALB"  114.3 "Europe"
              "Albania"      8 2016 "ALB"  97.88 "Europe"
              "Albania"      8 2017 "ALB"  79.29 "Europe"
              "Albania"      8 2018 "ALB"  212.9 "Europe"
              "Albania"      8 2019 "ALB"  74.45 "Europe"
              "Albania"      8 2020 "ALB" 124.34 "Europe"
              "Algeria"     12 2000 "DZA"  88.92 "Africa"
              "Algeria"     12 2001 "DZA" 166.17 "Africa"
              "Algeria"     12 2002 "DZA"  79.29 "Africa"
              "Algeria"     12 2003 "DZA"  70.98 "Africa"
              "Algeria"     12 2004 "DZA"  82.51 "Africa"
              "Algeria"     12 2005 "DZA"  64.13 "Africa"
              "Algeria"     12 2006 "DZA" -15.05 "Africa"
              "Algeria"     12 2007 "DZA"  83.88 "Africa"
              "Algeria"     12 2008 "DZA"  80.23 "Africa"
              "Algeria"     12 2009 "DZA"  77.34 "Africa"
              "Algeria"     12 2010 "DZA"  50.53 "Africa"
              "Algeria"     12 2011 "DZA"  63.09 "Africa"
              "Algeria"     12 2012 "DZA"  44.33 "Africa"
              "Algeria"     12 2013 "DZA"  48.51 "Africa"
              "Algeria"     12 2014 "DZA"  37.09 "Africa"
              "Algeria"     12 2015 "DZA"  33.17 "Africa"
              "Algeria"     12 2016 "DZA"  61.78 "Africa"
              "Algeria"     12 2017 "DZA"  70.27 "Africa"
              "Algeria"     12 2018 "DZA"  50.36 "Africa"
              "Algeria"     12 2019 "DZA"  53.79 "Africa"
              "Algeria"     12 2020 "DZA"  85.46 "Africa"
              "Andorra"     20 2000 "ADO"      . "Europe"
              "Andorra"     20 2001 "ADO"      . "Europe"
              "Andorra"     20 2002 "ADO"      . "Europe"
              "Andorra"     20 2003 "ADO"      . "Europe"
              "Andorra"     20 2004 "ADO"      . "Europe"
              "Andorra"     20 2005 "ADO"      . "Europe"
              "Andorra"     20 2006 "ADO"      . "Europe"
              "Andorra"     20 2007 "ADO"      . "Europe"
              "Andorra"     20 2008 "ADO"      . "Europe"
              "Andorra"     20 2009 "ADO"      . "Europe"
              "Andorra"     20 2010 "ADO"      . "Europe"
              "Andorra"     20 2011 "ADO"      . "Europe"
              "Andorra"     20 2012 "ADO"      . "Europe"
              "Andorra"     20 2013 "ADO"      . "Europe"
              "Andorra"     20 2014 "ADO"      . "Europe"
              "Andorra"     20 2015 "ADO"      . "Europe"
              "Andorra"     20 2016 "ADO"      . "Europe"
              "Andorra"     20 2017 "ADO"      . "Europe"
              "Andorra"     20 2018 "ADO"      . "Europe"
              "Andorra"     20 2019 "ADO"      . "Europe"
              "Andorra"     20 2020 "ADO"      . "Europe"
              "Angola"      24 2000 "AGO"  62.36 "Africa"
              "Angola"      24 2001 "AGO" 102.76 "Africa"
              "Angola"      24 2002 "AGO"  98.33 "Africa"
              "Angola"      24 2003 "AGO"  86.99 "Africa"
              "Angola"      24 2004 "AGO"  87.99 "Africa"
              "Angola"      24 2005 "AGO"  79.15 "Africa"
              "Angola"      24 2006 "AGO"  53.11 "Africa"
              "Angola"      24 2007 "AGO"  63.48 "Africa"
              "Angola"      24 2008 "AGO"  44.97 "Africa"
              "Angola"      24 2009 "AGO"  36.36 "Africa"
              "Angola"      24 2010 "AGO"  23.81 "Africa"
              "Angola"      24 2011 "AGO"  25.86 "Africa"
              "Angola"      24 2012 "AGO"  26.06 "Africa"
              "Angola"      24 2013 "AGO"  31.17 "Africa"
              "Angola"      24 2014 "AGO"  57.89 "Africa"
              "Angola"      24 2015 "AGO"  29.58 "Africa"
              end


              Nihat.

              Comment


              • #8
                If you have 200 or so countries, nothing will work well with fabplot except after a collapse of some kind by region and year.

                Comment


                • #9
                  Thank you Nick,

                  I will check.

                  Best

                  Comment


                  • #10
                    Dear Nick Cox,

                    Thank you for offering alternative ways of connected plot as you show #3. Actually, fabplot helped me a lot to deal with complex connected plots.
                    I have another specific question for fabplot.

                    I tried to create a scatter plot, using the fabplot schema as below. I want to associate "qataraidinteractions" and "qatarbilateral" using a fabplot for different regions (instead of using year). Each region might show a different correlation between "qataraidinteractions" and "qatarbilateral", and I want to visualize this variation.Actually, I am trying to do it without combining many graphs. Fabplot -perhaps- might be a good option, but the second line throws an error.
                    How can I overcome the problem?

                    Thank you so much,

                    Best,

                    Code:
                    collapse (sum) qataraidinteractions qatarbilateral , by(region year)
                    myaxis order=region, sort(sum qataraidinteractions qatarbilateral) descending
                    local xopts xla(2014(2)2020) xtitle("")
                    local xopts2 xla(2014(2)2020, format(%tyYY)) xtitle("")
                    fabplot line qataraidinteractions qatarbilateral, by(order) front(scatter) `xopts2' name(percent2, replace)
                    Last edited by Nihat Mugurtay; 11 Jul 2022, 13:31.

                    Comment


                    • #11
                      Data example (after collapse) and error message please.

                      Comment


                      • #12
                        Dear Nick Cox,

                        Thank you for response.

                        Here, I provide a dataex and other related codes.


                        Code:
                        * Example generated by -dataex-. For more info, type help dataex
                        clear
                        input float year str15 region double(qataraidinteractions qatarbilateral)
                        2000 "Africa"    0   0
                        2001 "Africa"    0   0
                        2002 "Africa"    0   0
                        2003 "Africa"    0   0
                        2004 "Africa"    0   0
                        2005 "Africa"    0   0
                        2006 "Africa"    0   0
                        2007 "Africa"    0   0
                        2008 "Africa"    0   0
                        2009 "Africa"    0   0
                        2010 "Africa"    0   0
                        2011 "Africa"    0   0
                        2012 "Africa"    0   0
                        2013 "Africa"    0   0
                        2014 "Africa"   29  71
                        2015 "Africa"   34 149
                        2016 "Africa"   46 105
                        2017 "Africa"   59 157
                        2018 "Africa"   60 115
                        2019 "Africa"   43 137
                        2020 "Africa"   53  77
                        2000 "Americas"  0   0
                        2001 "Americas"  0   0
                        2002 "Americas"  0   0
                        2003 "Americas"  0   0
                        2004 "Americas"  0   0
                        2005 "Americas"  0   0
                        2006 "Americas"  0   0
                        2007 "Americas"  0   0
                        2008 "Americas"  0   0
                        2009 "Americas"  0   0
                        2010 "Americas"  0   0
                        2011 "Americas"  0   0
                        2012 "Americas"  0   0
                        2013 "Americas"  0   0
                        2014 "Americas"  0  28
                        2015 "Americas"  0  37
                        2016 "Americas"  1  38
                        2017 "Americas" 11  54
                        2018 "Americas"  5  71
                        2019 "Americas"  3  74
                        2020 "Americas" 21  56
                        2000 "Asia"      0   0
                        2001 "Asia"      0   0
                        2002 "Asia"      0   0
                        2003 "Asia"      0   0
                        2004 "Asia"      0   0
                        2005 "Asia"      0   0
                        2006 "Asia"      0   0
                        2007 "Asia"      0   0
                        2008 "Asia"      0   0
                        2009 "Asia"      0   0
                        2010 "Asia"      0   0
                        2011 "Asia"      0   0
                        2012 "Asia"      0   0
                        2013 "Asia"      0   0
                        2014 "Asia"     14  39
                        2015 "Asia"     29 139
                        2016 "Asia"     21  86
                        2017 "Asia"     44 159
                        2018 "Asia"     34 113
                        2019 "Asia"     40 144
                        2020 "Asia"     42 118
                        2000 "Europe"    0   0
                        2001 "Europe"    0   0
                        2002 "Europe"    0   0
                        2003 "Europe"    0   0
                        2004 "Europe"    0   0
                        2005 "Europe"    0   0
                        2006 "Europe"    0   0
                        2007 "Europe"    0   0
                        2008 "Europe"    0   0
                        2009 "Europe"    0   0
                        2010 "Europe"    0   0
                        2011 "Europe"    0   0
                        2012 "Europe"    0   0
                        2013 "Europe"    0   0
                        2014 "Europe"    7  28
                        2015 "Europe"   11  85
                        2016 "Europe"    7  33
                        2017 "Europe"   14  78
                        2018 "Europe"   13  63
                        2019 "Europe"   18  44
                        2020 "Europe"   23  50
                        2000 "Middle"    0   0
                        2001 "Middle"    0   0
                        2002 "Middle"    0   0
                        2003 "Middle"    0   0
                        2004 "Middle"    0   0
                        2005 "Middle"    0   0
                        2006 "Middle"    0   0
                        2007 "Middle"    0   0
                        2008 "Middle"    0   0
                        2009 "Middle"    0   0
                        2010 "Middle"    0   0
                        2011 "Middle"    0   0
                        2012 "Middle"    0   0
                        2013 "Middle"    0   0
                        2014 "Middle"   50  24
                        2015 "Middle"   63  87
                        end
                        ------------------ copy up to and including the previous line ------------------

                        Listed 100 out of 126 observations
                        Use the count() option to list more

                        Actually, I want to create a scatter plot or fitplot without using the option below. Instead of using the code below, I want to create scatter or fitplots by using Fabplot.
                        Thank you so much,

                        Code:
                        twoway (scatter qataraidinteractions qatarbilateral) (lfit qataraidinteractions qatarbilateral) if region=="Asia"
                        graph save asia.gph
                        twoway (scatter qataraidinteractions qatarbilateral) (lfit qataraidinteractions qatarbilateral) if region=="Europe"
                        graph save europe.gph
                        twoway (scatter qataraidinteractions qatarbilateral) (lfit qataraidinteractions qatarbilateral) if region=="Africa"
                        graph save africca.gph
                        twoway (scatter qataraidinteractions qatarbilateral) (lfit qataraidinteractions qatarbilateral) if region=="Americas"
                        graph save americas.gph
                        graph combine asia.gph europe.gph africca.gph americas.gph
                        The error message is below for my axis. Meanwhile my sample covers the years between 2014 and 2020. I will delete other years later.

                        Best

                        Code:
                        myaxis order=region, sort(sum qataraidinteractions qatarbilateral ) descending
                        sort() invalid; see myaxis
                        r(198);
                        Last edited by Nihat Mugurtay; 12 Jul 2022, 01:56.

                        Comment


                        • #13
                          Why not give all 126 observations using the count() option of dataex?

                          Comment


                          • #14
                            Here, I provide the truncated data. It includes all regions and years.
                            Code:
                            * Example generated by -dataex-. For more info, type help dataex
                            clear
                            input float year str15 region double(qataraidinteractions qatarbilateral)
                            2014 "Africa"   29  71
                            2015 "Africa"   34 149
                            2016 "Africa"   46 105
                            2017 "Africa"   59 157
                            2018 "Africa"   60 115
                            2019 "Africa"   43 137
                            2020 "Africa"   53  77
                            2014 "Americas"  0  28
                            2015 "Americas"  0  37
                            2016 "Americas"  1  38
                            2017 "Americas" 11  54
                            2018 "Americas"  5  71
                            2019 "Americas"  3  74
                            2020 "Americas" 21  56
                            2014 "Asia"     14  39
                            2015 "Asia"     29 139
                            2016 "Asia"     21  86
                            2017 "Asia"     44 159
                            2018 "Asia"     34 113
                            2019 "Asia"     40 144
                            2020 "Asia"     42 118
                            2014 "Europe"    7  28
                            2015 "Europe"   11  85
                            2016 "Europe"    7  33
                            2017 "Europe"   14  78
                            2018 "Europe"   13  63
                            2019 "Europe"   18  44
                            2020 "Europe"   23  50
                            2014 "Middle"   50  24
                            2015 "Middle"   63  87
                            2016 "Middle"   52  78
                            2017 "Middle"   51  85
                            2018 "Middle"   59  75
                            2019 "Middle"   64  60
                            2020 "Middle"   84 106
                            2014 "Ocenia"    0   0
                            2015 "Ocenia"    0   1
                            2016 "Ocenia"    0   0
                            2017 "Ocenia"    0   3
                            2018 "Ocenia"    0   3
                            2019 "Ocenia"    1   1
                            2020 "Ocenia"    1   0
                            end
                            ------------------ copy up to and including the previous line ------------------

                            Listed 42 out of 42 observations

                            Comment


                            • #15
                              Thanks for the data example.

                              In #10 wanting to insist on xla(2014(2)2020) makes no sense as the x variable is qatarbilateral. -- but the error is that sort() in this call

                              Code:
                               
                               myaxis order=region, sort(sum qataraidinteractions qatarbilateral) 
                              doesn't match the specified syntax, which is either

                              sort(varname)

                              or

                              sort(egen_function varname)


                              fabplot doesn't extend to simultaneous scatter and lfit.

                              Here is some technique. Again, I corrected the typo pointed out in #3.


                              Code:
                              * Example generated by -dataex-. For more info, type help dataex
                              clear
                              input float year str15 region double(qataraidinteractions qatarbilateral)
                              2014 "Africa"   29  71
                              2015 "Africa"   34 149
                              2016 "Africa"   46 105
                              2017 "Africa"   59 157
                              2018 "Africa"   60 115
                              2019 "Africa"   43 137
                              2020 "Africa"   53  77
                              2014 "Americas"  0  28
                              2015 "Americas"  0  37
                              2016 "Americas"  1  38
                              2017 "Americas" 11  54
                              2018 "Americas"  5  71
                              2019 "Americas"  3  74
                              2020 "Americas" 21  56
                              2014 "Asia"     14  39
                              2015 "Asia"     29 139
                              2016 "Asia"     21  86
                              2017 "Asia"     44 159
                              2018 "Asia"     34 113
                              2019 "Asia"     40 144
                              2020 "Asia"     42 118
                              2014 "Europe"    7  28
                              2015 "Europe"   11  85
                              2016 "Europe"    7  33
                              2017 "Europe"   14  78
                              2018 "Europe"   13  63
                              2019 "Europe"   18  44
                              2020 "Europe"   23  50
                              2014 "Middle"   50  24
                              2015 "Middle"   63  87
                              2016 "Middle"   52  78
                              2017 "Middle"   51  85
                              2018 "Middle"   59  75
                              2019 "Middle"   64  60
                              2020 "Middle"   84 106
                              2014 "Ocenia"    0   0
                              2015 "Ocenia"    0   1
                              2016 "Ocenia"    0   0
                              2017 "Ocenia"    0   3
                              2018 "Ocenia"    0   3
                              2019 "Ocenia"    1   1
                              2020 "Ocenia"    1   0
                              end
                              
                              replace region = "Oceania" if region == "Ocenia"
                              gen qatarsum = qataraid + qatarbil
                              myaxis order=region, sort(mean qatarsum) descending 
                              fabplot scatter qataraid qatarbil, by(order) frontopts(ms(Oh) msize(large)) name(G1)
                              
                              fabplot lfit qataraid qatarbil, by(order) name(G2)

                              Comment

                              Working...
                              X