(no subject)

I have a PyQt4 program that has matplotlib imbedded. I followed the example code
in embedding_in_qt4.py and the plotting works very well but I have a couple of
questions.

I would like to display some text in the plot area. I can do that but the text
is overwritten by subsequent plots. Is there a way to clear the text between
plots? I would also like to display a grid. Is that possible?

Below is an outline of my plotting code.

···

=========================================
from embedding_in_qt4 import MyMplCanvas

    self.mplEmbed = MyMplCanvas()

    def test(self):
        t = arange(0.0, 3.0, 0.01)
        s = sin(2*pi*t)
        ax = self.mplEmbed.axes
        fig = self.mplEmbed.fig
        fig.text(0.13, 0.85, "Now is the time", fontsize=10)
        fig.suptitle("The quick brown fox")
        ax.plot(t, s)
        self.mplEmbed.draw()

The "fig.text()" call returns a Text artist. You can remove it later if you
like by calling its "remove()" method. If your concern is mostly that the
subsequent plots are appearing on top of it, and you would like the text to
always be on top, you can set its "zorder" value to be something large,
like 10:

text = fig.text(0.13, 0.85, "Now is the time", fontsize=10, zorder=10)

As for grids, you can turn that on with "ax.grid(True)".

Cheers!
Ben Root

···

On Mon, Aug 10, 2015 at 5:59 AM, garyr <garyr at fidalgo.net> wrote:

I have a PyQt4 program that has matplotlib imbedded. I followed the
example code
in embedding_in_qt4.py and the plotting works very well but I have a
couple of questions.

I would like to display some text in the plot area. I can do that but the
text is overwritten by subsequent plots. Is there a way to clear the text
between plots? I would also like to display a grid. Is that possible?

Below is an outline of my plotting code.

=========================================
from embedding_in_qt4 import MyMplCanvas

   self.mplEmbed = MyMplCanvas()

   def test(self):
       t = arange(0.0, 3.0, 0.01)
       s = sin(2*pi*t)
       ax = self.mplEmbed.axes
       fig = self.mplEmbed.fig
       fig.text(0.13, 0.85, "Now is the time", fontsize=10)
       fig.suptitle("The quick brown fox")
       ax.plot(t, s)
       self.mplEmbed.draw()

_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20150810/2651db08/attachment.html&gt;

Also remember that you can update the text with `txt.set_text()`

Tom

···

On Mon, Aug 10, 2015 at 9:18 AM Benjamin Root <ben.root at ou.edu> wrote:

The "fig.text()" call returns a Text artist. You can remove it later if
you like by calling its "remove()" method. If your concern is mostly that
the subsequent plots are appearing on top of it, and you would like the
text to always be on top, you can set its "zorder" value to be something
large, like 10:

text = fig.text(0.13, 0.85, "Now is the time", fontsize=10, zorder=10)

As for grids, you can turn that on with "ax.grid(True)".

Cheers!
Ben Root

On Mon, Aug 10, 2015 at 5:59 AM, garyr <garyr at fidalgo.net> wrote:

I have a PyQt4 program that has matplotlib imbedded. I followed the
example code
in embedding_in_qt4.py and the plotting works very well but I have a
couple of questions.

I would like to display some text in the plot area. I can do that but the
text is overwritten by subsequent plots. Is there a way to clear the text
between plots? I would also like to display a grid. Is that possible?

Below is an outline of my plotting code.

=========================================
from embedding_in_qt4 import MyMplCanvas

   self.mplEmbed = MyMplCanvas()

   def test(self):
       t = arange(0.0, 3.0, 0.01)
       s = sin(2*pi*t)
       ax = self.mplEmbed.axes
       fig = self.mplEmbed.fig
       fig.text(0.13, 0.85, "Now is the time", fontsize=10)
       fig.suptitle("The quick brown fox")
       ax.plot(t, s)
       self.mplEmbed.draw()

_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page

_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20150810/60094f6c/attachment.html&gt;

Calling remove() on the Text artist does the job, I finally discovered. I
didn't initially understand what you were telling me in your post. Thanks again.

Gary

···

----- Original Message -----
From: "Thomas Caswell" <tcaswell@gmail.com>
To: "Benjamin Root" <ben.root at ou.edu>; "garyr" <garyr at fidalgo.net>
Cc: <matplotlib-users at python.org>
Sent: Monday, August 10, 2015 6:44 AM
Subject: Re: [Matplotlib-users] (no subject)

Also remember that you can update the text with `txt.set_text()`

Tom

On Mon, Aug 10, 2015 at 9:18 AM Benjamin Root <ben.root at ou.edu> wrote:

The "fig.text()" call returns a Text artist. You can remove it later if
you like by calling its "remove()" method. If your concern is mostly that
the subsequent plots are appearing on top of it, and you would like the
text to always be on top, you can set its "zorder" value to be something
large, like 10:

text = fig.text(0.13, 0.85, "Now is the time", fontsize=10, zorder=10)

As for grids, you can turn that on with "ax.grid(True)".

Cheers!
Ben Root

On Mon, Aug 10, 2015 at 5:59 AM, garyr <garyr at fidalgo.net> wrote:

I have a PyQt4 program that has matplotlib imbedded. I followed the
example code
in embedding_in_qt4.py and the plotting works very well but I have a
couple of questions.

I would like to display some text in the plot area. I can do that but the
text is overwritten by subsequent plots. Is there a way to clear the text
between plots? I would also like to display a grid. Is that possible?

Below is an outline of my plotting code.

=========================================
from embedding_in_qt4 import MyMplCanvas

   self.mplEmbed = MyMplCanvas()

   def test(self):
       t = arange(0.0, 3.0, 0.01)
       s = sin(2*pi*t)
       ax = self.mplEmbed.axes
       fig = self.mplEmbed.fig
       fig.text(0.13, 0.85, "Now is the time", fontsize=10)
       fig.suptitle("The quick brown fox")
       ax.plot(t, s)
       self.mplEmbed.draw()

_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page

_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page