{smcl}
{* *! version 1.0.4 17aug2021 Ben Jann}{...}
{hi:help addplot}{...}
{right:{browse "http://github.com/benjann/addplot/"}}
{hline}
{title:Title}
{pstd}
{hi:addplot} {hline 2} adding twoway plot objects to an existing twoway graph
{title:Syntax}
{p 8 15 2}
{cmd:addplot} [{it:graphname}] [{it:{help numlist}}] [{cmd:,} {cmd:nodraw}]
{cmd::} {it:{help twoway:twoway_plots}}
{title:Description}
{pstd}
{cmd:addplot} adds twoway plot objects to an existing twoway graph. This is
useful if you want to add objects such as titles or extra data points to a
twoway graph after it has been created. Most of what {cmd:addplot} can do
can also be done by rerunning the original graph command including
additional options or plot statements. {cmd:addplot}, however, might be
useful if you have to modify a graph for which you cannot rerun the
original command, for example, because you only have the graph file but not
the data that were used to create the graph. Furthermore, {cmd:addplot} can
do certain things that would be difficult to achieve in a single graph
command (e.g. customizing individual subgraphs within a
by-graph). {cmd:addplot} also provides a substitute for some of the
functionality of the {helpb graph_editor:graph editor}.
{pstd}
{it:graphname} is the name of the memory graph to be modified. The current
(topmost) graph is used if {it:graphname} is omitted.
{pstd}
{it:{help numlist}} provides the numbers of the subgraphs to be modified. This is
useful if you apply {cmd:addplot} to a graph that has been created using
{helpb graph combine} or the {help by_option:{bf:by()}} option. The default
is to modify all twoway subgraphs found in the graph. If you only want to
modify, say, the second and third subgraph, you could type
{cmd:. addplot 2 3: ...}
{title:Options}
{phang}
{cmd:nodraw} causes the graph data to be modified without updating the
display of the graph in the graph window. Use this option
if you apply {cmd:addplot} multiple times to the same
graph and do not want to refresh the graph window each time. Use
{helpb graph display} to view the modified graph after applying
{cmd:addplot} with option {cmd:nodraw}.
{title:Remarks}
{dlgtab:How to prevent rescaling of the axes}
{pstd}
When modifying a plot using {cmd:addplot},
the axes of the plot will be recompiled using default settings. This is to
ensure that all data points fit into the plot region, even if they are
outside the range of the existing plot. To prevent {cmd:addplot} from
recompiling the axes (so that axis labels and ranges are preserved), apply
option {cmd:norescaling} to the added twoway command. See the example
on {help addplot##norescaling:Addressing subgraphs in a by-graph}
below.
{dlgtab:How to handle the legend}
{pstd}
{cmd:addplot} may cause a legend to be added to the graph. To
suppress adding a legend, apply option {cmd:legend(off)} to the added
twoway command (see the first example below). Furthermore, {cmd:addplot}
always recreates an existing legend using default legend keys. To preserve
or create a custom legend you need to specify an appropriate
{cmd:legend(order())} option with the added twoway command (see help
{it:{help legend_options}}).
{title:Examples}
{pstd}
Also see {browse "http://www.stata-journal.com/article.html?article=gr0065":Jann (2015)}.
{pstd}
Basic example:
. {stata sysuse auto}
. {stata scatter price mpg}
. {stata "addplot: scatter price mpg if price>15000, ms(i) mlabel(make) legend(off)"}
. {stata `"addplot: pcarrowi 14000 23 15500 21.5 "expensive car""'}
. {stata "addplot: (line price mpg if mpg>30) (dropline price mpg if price<3300)"}
. {stata graph drop Graph}
{pstd}
Working with named graphs:
. {stata sysuse auto}
. {stata scatter price mpg, name(g1, replace)}
. {stata scatter price weight, name(g2, replace)}
. {stata "addplot g1: , title(price by mpg)"}
. {stata "addplot g2: , title(price by weight)"}
. {stata graph drop g1 g2}
{pstd}
Modifying a graph from file:
. {stata sysuse auto}
. {stata scatter price mpg}
. {stata graph save mygraph.gph}
. {stata graph drop Graph}
. ...
. {stata graph use mygraph.gph}
. {stata `"addplot mygraph: pcarrowi 14000 23 15500 21.5 "expensive car", legend(off)"'}
. {stata graph drop mygraph}
. {stata erase mygraph.gph}
{marker norescaling}{...}
{pstd}
Addressing subgraphs in a by-graph:
. {stata sysuse auto}
. {stata scatter price mpg, by(foreign)}
. {stata "addplot: , xline(21.3, lp(dash)) yline(6165, lp(dash)) norescaling"}
. {stata "addplot 1: , xline(19.8) yline(6072) norescaling"}
. {stata "addplot 2: , xline(24.8) yline(6385) norescaling"}
. {stata graph drop Graph}
{title:Acknowledgement}
{pstd}
Vince Wiggins from StataCorp provided critical help and comments.
{title:Author}
{pstd}
Ben Jann, University of Bern, ben.jann@unibe.ch
{pstd}
Thanks for citing this software as
{pmore}
Jann, B. (2014). addplot: Stata module to add twoway plot
objects to an existing twoway graph. Available from
{browse "http://ideas.repec.org/c/boc/bocode/s457917.html"}.
{pstd}
or
{pmore}
Jann, B. (2015). {browse "http://www.stata-journal.com/article.html?article=gr0065":A note on adding objects to an existing twoway graph}. The
Stata Journal 15(3): 751-755.
{title:Also see}
{psee}
Online: help for
{helpb graph_twoway:graph twoway},
{helpb graph combine:graph combine},
{it:{help by_option}},
{it:{help addplot_option}},
{manhelp graph_editor G-1:graph editor}