<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Thank you, Thomas, for your reply. You
      are right that I have to use an appropriate transofrm to turn
      canvas points yielded by get_window_extent() to the actual Axes's
      coordinates. The transforms.offset_copy(...) function came to my
      rescue.<br>
      <br>
      Thanks again,<br>
      Ryszard<br>
       <br>
    </div>
    <blockquote type="cite"
cite="mid:CAA48SF-QEt_EN88-wDi4seA4nzxLcWHU=AKndRbVZm=A2RfRcw@mail.gmail.com">
      <div dir="ltr">The problem is that we do not know how big the text
        will be until we actually render it so `abc.get_window_extent`
        is lying.
        <div><br>
        </div>
        <div>I suggest looking at <a
href="https://matplotlib.org/tutorials/text/annotations.html#using-complex-coordinates-with-annotations"
            moz-do-not-send="true">https://matplotlib.org/tutorials/text/annotations.html#using-complex-coordinates-with-annotations</a> which
          shows how to defer the calling of `get_window_extent` until as
          late as possible.</div>
        <div><br>
        </div>
        <div>Tom</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr">On Mon, Apr 9, 2018 at 1:35 PM Ryszard Kubiak
          <<a href="mailto:rhkubiak@gmail.com" moz-do-not-send="true">rhkubiak@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello
          everybody,<br>
          <br>
          Please, take a look at the code below. I want to place the
          text 'xyz'<br>
          just next to 'abc'. The reusult is that 'xyz' goes much
          further right to<br>
          'abc' and there is a gap between the texts.<br>
          <br>
          The width of the bbox happens to be 40, as the printout shows.
          The 'xyz'<br>
          text is indeed at 40. However, one can see on the canvas that
          'abc'<br>
          width is only about 6.5. Thus, there is a mismatch between
          what<br>
          get_window_extent calculates (40) and what the text size is on
          the<br>
          canvas (6.5).<br>
          <br>
          What am I doing wrong?<br>
          <br>
          Best Regards,<br>
          Ryszard<br>
          <br>
          import matplotlib.pyplot as plt<br>
          <br>
          fig = plt.figure(frameon=False)<br>
          ax = plt.Axes(fig, [0.0, 0.0, 1.0, 1.0])<br>
          ax.set_axis_off()<br>
          ax.set_xlim(0, 100)<br>
          ax.set_ylim(0, 100)<br>
          fig.add_axes(ax)<br>
          renderer = fig.canvas.get_renderer()<br>
          abc = plt.text(0, 0, 'abc', fontsize=20,
          bbox=dict(facecolor='red',<br>
          alpha=0.2, pad=0))<br>
          bbox = abc.get_window_extent(renderer=renderer)<br>
          print('width:', bbox.width, 'height:', bbox.height)<br>
          xyz = plt.text(bbox.width, 0, 'xyz', fontsize=20,<br>
          bbox=dict(facecolor='blue', alpha=0.2, pad=0))<br>
          plt.show()<br>
          <br>
          _______________________________________________<br>
          Matplotlib-users mailing list<br>
          <a href="mailto:Matplotlib-users@python.org" target="_blank"
            moz-do-not-send="true">Matplotlib-users@python.org</a><br>
          <a
            href="https://mail.python.org/mailman/listinfo/matplotlib-users"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://mail.python.org/mailman/listinfo/matplotlib-users</a><br>
        </blockquote>
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>