That's great, thanks for the example Hazen ! I'll be implementing this in
the following days

On Thu, Sep 5, 2019 at 5:52 PM Hazen Babcock <hbabc...@mac.com> wrote:

> On 9/5/19 6:16 AM, Xavier Cardil wrote:
> > Thank you for your responses.
> > It took me a day to realize that this might be actually the best
> > solution, as plotting to memory will be way faster than writing to disk.
> > As long as we can plot to memory via plsmema( )  and then retrieve it,
> > it should be possible to convert the plot to a Numpy array ?
> > Keras takes images as arrays as per our requirement. In matplotlib this
> > is done behind the covers with Pillow + Numpy if I'm not wrong.
> > Pillow can store images as arrays in memory, so it's similar to what
> > plsmema( ) does. I mentioned RGBA encoded string instead of Numpy array
> > because I believe Pillow stores images in memory as RGBA strings, and I
> > was trying to find a replacement for the whole procedure ( matplotlib is
> > terribly slow )
> >
> > It would be great to hear more comments from you about this, thanks !
> >
>
> Here is an example (using the "memqt" driver, but "memcairo" should also
> work).
>
> #!/usr/bin/env python3
>
> from PIL import Image
>
> import numpy
> import plplot
>
> width = 480
> height = 320
> plot_buffer = numpy.zeros((height, width, 4), numpy.uint8)
>
> plplot.plsmema(width, height, plot_buffer)
>
> plplot.plstart("memqt", 1, 1)
> plplot.plenv(0, 360, 0, 90, 0, 2)
> plplot.plend1()
>
> plot_image = Image.frombytes("RGBA", (width, height), plot_buffer)
> plot_image.save("image.png")
>
>
> The final plot is available in the plot_buffer numpy array object, or in
> the plot_image PIL/Pillow Image object.
>
> -Hazen
>
_______________________________________________
Plplot-general mailing list
Plplot-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-general

Reply via email to