Hi all (and especially Nick Cox),
I am wondering if there is a way to inset graphs within graphs to create a sort of "zoom-in" effect on a particular point. I currently have the following MWE:
The data is from FRED and it is basically just Canadian economic series:
And the code I am currently using is
This creates the first graph (please ignore the axis labels and legend, this isn't a final product):
And the graph that I want to inset in the bottom left of this graph:
I have been scouring for some kind of command that would allow me to do this but I can't seem to find one. I imagine it might require some sort of macros approach but I am not well-versed enough to devise the program myself. Any thoughts or comments that could lead me in the right direction? This has to have been done before using Stata.
I am wondering if there is a way to inset graphs within graphs to create a sort of "zoom-in" effect on a particular point. I currently have the following MWE:
The data is from FRED and it is basically just Canadian economic series:
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input int period double(GDP C G I) 366 85892750000 . 2.2811e+10 1.4491e+10 456 88065250000 . 22919750000 1.4864e+10 547 9.0187e+10 . 2.3821e+10 15365250000 639 91446750000 . 23725750000 15383250000 731 93870250000 . 2.3918e+10 1.5614e+10 821 9.4561e+10 . 24696750000 15533250000 912 95806250000 . 24446250000 16034749999.999998 1004 97758250000 . 2.4957e+10 1.5905e+10 1096 98351750000 . 25384250000 1.578e+10 1186 9.979e+10 . 2.53765e+10 16120000000.000002 1277 100566250000 . 2.59475e+10 1.63995e+10 1369 103722750000 . 26095250000 17126999999.999998 1461 106295750000 . 2.7482e+10 1.78885e+10 1552 1.066875e+11 . 27019750000 18115750000 1643 107799250000 . 26815750000 18402250000 1735 108381250000 . 2.76315e+10 1.95945e+10 1827 1.11793e+11 . 2.7987e+10 19617250000 1917 1.12864e+11 . 2.8185e+10 19882250000 2008 1.14401e+11 . 28511250000 20926750000 2100 117214750000 . 29152250000 21604250000 2192 1.194585e+11 . 29686250000 22294250000 2282 1.21991e+11 . 3.04555e+10 22973750000 2373 121961750000 . 3.12245e+10 22769250000 2465 123453750000 . 3.2153e+10 23052250000 2557 123182250000 . 32207250000.000004 2.31035e+10 2647 125774250000 . 33601750000.000004 23011250000 2738 126224250000 . 33881500000.000004 22689750000 2830 1.26735e+11 . 3.41515e+10 2.2367e+10 2922 127785750000 . 34425250000 22830750000 3013 1.312585e+11 . 35217750000 22847750000 3104 133053750000.00002 . 3.6076e+10 22861250000 3196 134890999999.99998 . 3.67015e+10 2.3416e+10 3288 136655499999.99998 . 3.64995e+10 23654750000 3378 137329000000.00002 . 3.74045e+10 24045750000 3469 1.388035e+11 . 3.7358e+10 24245750000 3561 140790250000 . 38033750000 24420750000 3653 1.417e+11 . 3.9442e+10 2.44595e+10 3743 141694250000 . 4.08325e+10 23597750000 3834 143157250000 . 39985750000 24229750000 3926 1.434125e+11 . 40859750000 24620750000 4018 142589750000 . 4.0112e+10 2.47925e+10 4108 146725750000 . 4.14715e+10 2.582e+10 4199 150805250000 . 42289250000 26421250000 4291 152472750000 . 42737750000 2.691e+10 4383 1.5194e+11 . 4.19375e+10 2.69805e+10 4474 1.5624e+11 . 42541750000 27320250000 4565 1.566755e+11 . 43530250000 2.71055e+10 4657 160387750000 . 44186750000 26828250000 4749 1.64576e+11 . 44112750000 28271750000 4839 1.66361e+11 . 4.4647e+10 2.88945e+10 4930 166963250000 . 4.48645e+10 2.94515e+10 5022 1.700835e+11 . 46583250000 30497250000 5114 1.713445e+11 . 46233750000 31682750000 5204 1.732195e+11 . 47463250000 3.06155e+10 5295 173067250000 . 4.8172e+10 3.0637e+10 5387 1.722645e+11 . 4.87975e+10 3.04815e+10 5479 1.71182e+11 . 49187750000 3.07655e+10 5569 173406750000 . 5.0825e+10 3.16145e+10 5660 176663250000 . 5.14135e+10 32867250000 5752 1.78724e+11 . 5.1369e+10 33411749999.999996 5844 1.81821e+11 . 51034750000 33758249999.999996 5935 185755250000 . 5.1598e+10 34897250000 6026 1.865825e+11 . 5.13165e+10 3.4022e+10 6118 1.86967e+11 . 5.1872e+10 34224249999.999996 6210 189625750000 . 52712750000 3.47325e+10 6300 1.906445e+11 . 5.37345e+10 34993750000 6391 1.91653e+11 . 5.33655e+10 35383750000 6483 194683250000 . 53779250000 3.51235e+10 6575 196320250000 . 5.35965e+10 3.49915e+10 6665 1.97667e+11 . 5.39715e+10 3.58235e+10 6756 199553750000 . 5.4084e+10 3.5793e+10 6848 201303750000 . 5.40665e+10 36253250000 6940 2.029785e+11 . 5.3917e+10 36678250000 7030 205712750000 . 5.46705e+10 3.7033e+10 7121 207136250000 . 5.4286e+10 38973250000 7213 2.08515e+11 . 5.46415e+10 39173250000 7305 2.09975e+11 . 54987250000 39663250000 7396 209908250000 . 5.5702e+10 38681250000 7487 209667250000 . 5.6438e+10 4.0302e+10 7579 2.12561e+11 . 5.61815e+10 4.14375e+10 7671 217245750000 109859750000 5.65215e+10 43427750000 7761 2.196875e+11 1.097075e+11 5.6411e+10 44640750000 7852 217715250000 1.090945e+11 5.710e+10 4.35725e+10 7944 2.167185e+11 109304250000 57255750000 43120750000 8036 2.14169e+11 107629750000 5.6774e+10 41716750000 8126 211690750000 106755250000 57354250000 38884250000 8217 209835250000 106358750000 5.7843e+10 37161750000 8309 207899250000 105989250000 5.80075e+10 3.8039e+10 8401 2.11377e+11 107460750000 5.7002e+10 3.7857e+10 8491 2.155315e+11 108732250000 58061750000 38628750000 8582 2.17942e+11 1.1001e+11 58672750000 3.90255e+10 8674 2.206885e+11 1.11183e+11 58737750000 39307250000 8766 2.24485e+11 112105750000 58881250000 3.93985e+10 8857 228875750000 1.132755e+11 58904250000 3.9353e+10 8948 229838250000 113408250000 5.95875e+10 3.96925e+10 9040 2.3348e+11 1.15385e+11 60350250000 3.975e+10 9132 2.370275e+11 116878250000 61260750000 4.06915e+10 9222 2.37783e+11 1.179455e+11 6.17865e+10 4.26085e+10 9313 240799750000 1.20177e+11 6.1306e+10 4.39535e+10 9405 2.444955e+11 121429750000 62827750000 4.4354e+10 end format %td period
Code:
// Data Cleaning gen quarter = qofd(period) drop if quarter < yq(1981, 1) tsset quarter, quarterly foreach v in GDP C G I { //convert to billions for readability gen `v'_bil = `v'*1e-9 } tsfilter hp cy*=GDP_bil C_bil G_bil I_bil, smooth(1600) // Graph 1 twoway tsline cy1 cy2 cy3 cy4, legend(size(medsmall)) ytitle("Billions of real (2015) Canadian dollars") /// xtitle("quarter") lpattern(solid dash longdash solid) // Graph 2 to be inset keep if quarter >= yq(2018, 4) twoway tsline cy1 cy2 cy3 cy4, legend(size(medsmall)) ytitle("") /// xtitle("quarter") lpattern(solid dash longdash solid)
And the graph that I want to inset in the bottom left of this graph:
I have been scouring for some kind of command that would allow me to do this but I can't seem to find one. I imagine it might require some sort of macros approach but I am not well-versed enough to devise the program myself. Any thoughts or comments that could lead me in the right direction? This has to have been done before using Stata.
Comment