<divid="unreleased-message"> You are reading an old version of the documentation (v2.2.3). For the latest version see <ahref="/stable/">https://matplotlib.org/stable/</a></div>
<pclass="last">Click <aclass="reference internal" href="#sphx-glr-download-gallery-api-line-with-text-py"><spanclass="std std-ref">here</span></a> to download the full example code</p>
<spanid="sphx-glr-gallery-api-line-with-text-py"></span><h1>Artist within an artist<aclass="headerlink" href="#artist-within-an-artist" title="Permalink to this headline">¶</a></h1>
<p>Override basic methods so an artist can contain another
artist. In this case, the line contains a Text instance to label it.</p>
<spanclass="k">class</span><spanclass="nc">MyLine</span><spanclass="p">(</span><ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D" title="View documentation for matplotlib.lines.Line2D"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span></a><spanclass="p">):</span>
<spanclass="c1"># we'll update the position when the line data is set</span>
<spanclass="bp">self</span><spanclass="o">.</span><spanclass="n">text</span><spanclass="o">=</span><ahref="../../api/text_api.html#matplotlib.text.Text" title="View documentation for matplotlib.text.Text"><spanclass="n">mtext</span><spanclass="o">.</span><spanclass="n">Text</span></a><spanclass="p">(</span><spanclass="mi">0</span><spanclass="p">,</span><spanclass="mi">0</span><spanclass="p">,</span><spanclass="s1">''</span><spanclass="p">)</span>
<ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D" title="View documentation for matplotlib.lines.Line2D"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span></a><spanclass="o">.</span><spanclass="fm">__init__</span><spanclass="p">(</span><spanclass="bp">self</span><spanclass="p">,</span><spanclass="o">*</span><spanclass="n">args</span><spanclass="p">,</span><spanclass="o">**</span><spanclass="n">kwargs</span><spanclass="p">)</span>
<spanclass="c1"># we can't access the label attr until *after* the line is</span>
<ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D" title="View documentation for matplotlib.lines.Line2D"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span></a><spanclass="o">.</span><spanclass="n">set_figure</span><spanclass="p">(</span><spanclass="bp">self</span><spanclass="p">,</span><spanclass="n">figure</span><spanclass="p">)</span>
<ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D" title="View documentation for matplotlib.lines.Line2D"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span></a><spanclass="o">.</span><spanclass="n">set_axes</span><spanclass="p">(</span><spanclass="bp">self</span><spanclass="p">,</span><spanclass="n">axes</span><spanclass="p">)</span>
<spanclass="n">texttrans</span><spanclass="o">=</span><spanclass="n">transform</span><spanclass="o">+</span><ahref="../../api/transformations.html#matplotlib.transforms.Affine2D" title="View documentation for matplotlib.transforms.Affine2D"><spanclass="n">mtransforms</span><spanclass="o">.</span><spanclass="n">Affine2D</span></a><spanclass="p">()</span><spanclass="o">.</span><spanclass="n">translate</span><spanclass="p">(</span><spanclass="mi">2</span><spanclass="p">,</span><spanclass="mi">2</span><spanclass="p">)</span>
<ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D.set_transform" title="View documentation for matplotlib.lines.Line2D.set_transform"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span><spanclass="o">.</span><spanclass="n">set_transform</span></a><spanclass="p">(</span><spanclass="bp">self</span><spanclass="p">,</span><spanclass="n">transform</span><spanclass="p">)</span>
<ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D.set_data" title="View documentation for matplotlib.lines.Line2D.set_data"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span><spanclass="o">.</span><spanclass="n">set_data</span></a><spanclass="p">(</span><spanclass="bp">self</span><spanclass="p">,</span><spanclass="n">x</span><spanclass="p">,</span><spanclass="n">y</span><spanclass="p">)</span>
<spanclass="c1"># draw my label at the end of the line with 2 pixel offset</span>
<ahref="../../api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D.draw" title="View documentation for matplotlib.lines.Line2D.draw"><spanclass="n">lines</span><spanclass="o">.</span><spanclass="n">Line2D</span><spanclass="o">.</span><spanclass="n">draw</span></a><spanclass="p">(</span><spanclass="bp">self</span><spanclass="p">,</span><spanclass="n">renderer</span><spanclass="p">)</span>
<spanclass="c1"># Fixing random state for reproducibility</span>
<ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.seed.html#numpy.random.seed" title="View documentation for numpy.random.seed"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">random</span><spanclass="o">.</span><spanclass="n">seed</span></a><spanclass="p">(</span><spanclass="mi">19680801</span><spanclass="p">)</span>
<spanclass="n">fig</span><spanclass="p">,</span><spanclass="n">ax</span><spanclass="o">=</span><ahref="../../api/_as_gen/matplotlib.pyplot.subplots.html#matplotlib.pyplot.subplots" title="View documentation for matplotlib.pyplot.subplots"><spanclass="n">plt</span><spanclass="o">.</span><spanclass="n">subplots</span></a><spanclass="p">()</span>
<spanclass="n">x</span><spanclass="p">,</span><spanclass="n">y</span><spanclass="o">=</span><ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.rand.html#numpy.random.rand" title="View documentation for numpy.random.rand"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">random</span><spanclass="o">.</span><spanclass="n">rand</span></a><spanclass="p">(</span><spanclass="mi">2</span><spanclass="p">,</span><spanclass="mi">20</span><spanclass="p">)</span>
<ahref="../../api/_as_gen/matplotlib.pyplot.show.html#matplotlib.pyplot.show" title="View documentation for matplotlib.pyplot.show"><spanclass="n">plt</span><spanclass="o">.</span><spanclass="n">show</span></a><spanclass="p">()</span>
</pre></div>
</div>
<divclass="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-gallery-api-line-with-text-py">