I'm studying the causal impact of Puerto Rico's VacuTour policy with my event-study synthetic control estimator. I want to give myself and other users of my command the ability to average and graph their pointwise effects within whatever temporal window they choose. This is partly so folks can see the causal effect better, but also since some policies may not have very long term effects (i.e., until the end of the time series). In my case, I want to force the x-axis, the relative time axis, to be within 28 periods before the intervention and 28 periods afterwards.


I figured we'd naturally use the -if- option since that'll restrict our sample however we choose. However, when I try this, Stata returns to me the graph I desire, but the x-axis extends from 40 days before to 40 days after, which could give readers and others the wrong impression. All I want, is to force the x-axis to be within -28/28. Here's my code.

Code:
* Example generated by -dataex-. For more info, type help dataex
clear
input float(relative_ diff_ lowbound_ upbound_)
-28 -.23405184  -40.92885   40.46075
-27 -.21228437  -40.90708   40.48251
-26 -2.8375804  -43.53238  37.857216
-25  1.6115553  -39.08324   42.30635
-24   .4068981   -40.2879    41.1017
-23   .4525818  -40.24222   41.14738
-22  -1.950658  -42.64546   38.74414
-21 -1.7958262  -42.49063   38.89898
-20  -.4942572  -41.18906   40.20054
-19  -3.309373  -44.00417  37.385426
-18 -.57243955  -41.26724   40.12236
-17   2.569238  -38.12556   43.26404
-16   2.427209  -38.26759   43.12201
-15  1.0074625  -39.68734   41.70226
-14  1.0761077  -39.61869   41.77091
-13  -1.523999   -42.2188    39.1708
-12  -.9060938  -41.60089   39.78871
-11   .6814575  -40.01334   41.37626
-10  2.1758146  -38.51898   42.87061
 -9   3.407859  -37.28694   44.10266
 -8   4.730154 -35.964645   45.42495
 -7  -1.399982  -42.09478   39.29482
 -6  .13326946  -40.56153   40.82807
 -5  1.9785467  -38.71625   42.67334
 -4   2.253932  -38.44086   42.94873
 -3   5.074914 -35.619884   45.76971
 -2  4.2422204  -36.45258   44.93702
 -1   5.072356 -35.622444   45.76715
  0  -8.734286  -49.42908   31.96051
  1  1.1307629  -39.56403   41.82556
  2   7.365439  -33.32936   48.06024
  3     6.7859 -33.908897    47.4807
  4   10.42575  -30.26905   51.12055
  5   9.159128  -31.53567   49.85393
  6   8.031276  -32.66352   48.72607
  7  11.757857  -28.93694   52.45266
  8  -6.303397  -46.99819  34.391403
  9 -11.902307  -52.59711   28.79249
 10  -8.759895  -49.45469    31.9349
 11  -26.40079  -67.09559  14.294008
 12  -32.28964 -72.984436   8.405159
 13  -31.45153 -72.146324   9.243271
 14  -35.57741  -76.27221   5.117386
 15 -32.969852  -73.66465   7.724947
 16  -38.73798  -79.43278   1.956817
 17  -47.03251  -87.72731  -6.337713
 18  -59.44791  -100.1427  -18.75311
 19  -59.10678  -99.80157  -18.41198
 20   -74.3221  -115.0169 -33.627296
 21  -77.36971  -118.0645 -36.674904
 22  -88.54966 -129.24446  -47.85486
 23  -90.35377 -131.04857  -49.65897
 24  -94.14935 -134.84416  -53.45456
 25  -97.99923 -138.69403  -57.30443
 26  -99.54365 -140.23845  -58.84885
 27 -108.90373 -149.59853  -68.20893
 28 -105.69733 -146.39214  -65.00253
end

qui su diff if rel >= 0, mean

loc ATT: disp %6.4g `r(mean)'

loc before = 28

loc after = 28

loc intname "Vacutour"

tw ///
    (connected diff_ relative_, /// Plot 1, Average Lines
        mcolor("0 142 234") msize(medium) ///
        msymbol(circle) lcolor("0 142 234") lwidth(medium)) ///
    (rarea lowbound_ upbound_ relative_, /// plot 2, 95% CIs
        fcolor("252 201 185 %40") lcolor("252 201 185 %40")) if inrange(rel,-`before',`after'), ///
            legend(order(1 "ATT" 2 "Confidence Interval") pos(7) ring(0)) /// other graph options
            note("ATT = `ATT', adjusted for imbalances in event-time.") ///
            xti("Time Relative to `intname'") name(eventplot, replace) scheme(`scheme') ///
            yti("Pointwise ATT") xli(0, lcol(blue) lwidth(thick)) ///
            ti("SCUL, Event-Study")
I know Stata under the hood has her own rules about axis making, so if there's no easy way to do this it isn't the end of the world, I just wanted to see if it were possible. Oh, and note that my default scheme is gg_tableau, but I suspect this won't likely matter to my question.