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