Diplaying 2D images in mplot3d

Dear Ben,

Thank you for the explanation. Too bad mplot3d cannot display textured polygons.
I did have a look at glumpy and it does part of what I am looking for. However, glumpy does not support being embedded in a wxpython application which is a requisite for me.

I guess I just have to learn VTK…

Thanks again,

Fabrice

···

On Tue, Sep 30, 2014 at 5:54 PM, Fabrice C. <kappamonagare@…527…> wrote:

Dear list,

I would like to display a 2D image in a mplot3d axe in order to combine

it with a surface3D or a bar3d plot for instance. The effect I am

looking for is similar to what can be seen in the bottom XY plane of

http://matplotlib.org/1.4.0/examples/mplot3d/contourf3d_demo2.html,

except that I would like to have a custom image instead of the filled

contours.

I googled the subject and found only messages dating at best from 2010.

These messages mentioned that the imshow() method did not work on a

mplot3d. Indeed it does not.

The only alternatives offered by the googled answer to my problem were

to switch to VTK or Mayavi. For one thing, I never managed to install

VTK on my PC, and I already have other matplotlib figures in my wxpython

application so I would really like to stick to matplotlib.

Does anyone have pointers as to how I could display a 2D image in

mplot3d? Do I need to create a new artist in order to replace the

non-functionning imshow?

I see that patch collections work fine in mplot3D. Would it be feasible

to load an image and have it displayed as a patch collection (1 patch

for each pixel)?

Any advice would be highly appreciated,

Fabrice


This email is free from viruses and malware because avast! Antivirus protection is active.

http://www.avast.com


Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer

Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports

Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper

Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer

http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Instead of learning VTK, you may find it easier to start with Mayavi 2 (written on VTK).

···

On Wed, Oct 1, 2014 at 2:27 PM, Fabrice C. <kappamonagare@…527…> wrote:

Dear Ben,

Thank you for the explanation. Too bad mplot3d cannot display textured polygons.
I did have a look at glumpy and it does part of what I am looking for. However, glumpy does not support being embedded in a wxpython application which is a requisite for me.

I guess I just have to learn VTK…

Thanks again,

Fabrice

Benjamin Root <ben.root@…1304…> wrote:

I tried something like this awhile back to no avail. Because of the kludgy nature of mplot3d, we are lucky we even can display 2d artists like polygons (and, this is me speaking as the de facto maintainer of mplot3d!). Images are an entirely different beast, unfortunately.

What might work is getting a pcolormesh object converted into 3d. Not pcolor (as that is an image-based object), but the QuadMesh object that gets returned by pcolormesh(). I haven’t tried to convert that into a 3d equivalent, but it might be feasible.

I would also check out glumpy: https://code.google.com/p/glumpy/. I could have sworn I have seen examples of glumpy treating images as “texture” data for surfaces.

I hope this points you in a useful direction!

Ben Root


Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer

Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports

Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper

Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer

http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users

On Tue, Sep 30, 2014 at 5:54 PM, Fabrice C. <kappamonagare@…527…> wrote:

Dear list,

I would like to display a 2D image in a mplot3d axe in order to combine

it with a surface3D or a bar3d plot for instance. The effect I am

looking for is similar to what can be seen in the bottom XY plane of

http://matplotlib.org/1.4.0/examples/mplot3d/contourf3d_demo2.html,

except that I would like to have a custom image instead of the filled

contours.

I googled the subject and found only messages dating at best from 2010.

These messages mentioned that the imshow() method did not work on a

mplot3d. Indeed it does not.

The only alternatives offered by the googled answer to my problem were

to switch to VTK or Mayavi. For one thing, I never managed to install

VTK on my PC, and I already have other matplotlib figures in my wxpython

application so I would really like to stick to matplotlib.

Does anyone have pointers as to how I could display a 2D image in

mplot3d? Do I need to create a new artist in order to replace the

non-functionning imshow?

I see that patch collections work fine in mplot3D. Would it be feasible

to load an image and have it displayed as a patch collection (1 patch

for each pixel)?

Any advice would be highly appreciated,

Fabrice


This email is free from viruses and malware because avast! Antivirus protection is active.

http://www.avast.com


Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer

Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports

Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper

Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer

http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users

You might want to have a look at vispy.org, we implemented the wx backend and there are several examples available.
(and the new glumpy home is http://glumpy.github.io)

vispy examples at http://vispy.org/gallery.html

Nicolas

···

On 01 Oct 2014, at 20:27, Fabrice C. <kappamonagare@...527...> wrote:

Dear Ben,

Thank you for the explanation. Too bad mplot3d cannot display textured polygons.
I did have a look at glumpy and it does part of what I am looking for. However, glumpy does not support being embedded in a wxpython application which is a requisite for me.

I guess I just have to learn VTK...

Thanks again,

Fabrice

Benjamin Root <ben.root@...1304...> wrote:

I tried something like this awhile back to no avail. Because of the kludgy nature of mplot3d, we are lucky we even can display 2d artists like polygons (and, this is me speaking as the de facto maintainer of mplot3d!). Images are an entirely different beast, unfortunately.

What *might* work is getting a pcolormesh object converted into 3d. Not pcolor (as that is an image-based object), but the QuadMesh object that gets returned by pcolormesh(). I haven't tried to convert that into a 3d equivalent, but it might be feasible.

I would also check out glumpy: https://code.google.com/p/glumpy/. I could have sworn I have seen examples of glumpy treating images as "texture" data for surfaces.

I hope this points you in a useful direction!
Ben Root

On Tue, Sep 30, 2014 at 5:54 PM, Fabrice C. <kappamonagare@...527...> wrote:
Dear list,

I would like to display a 2D image in a mplot3d axe in order to combine
it with a surface3D or a bar3d plot for instance. The effect I am
looking for is similar to what can be seen in the bottom XY plane of
http://matplotlib.org/1.4.0/examples/mplot3d/contourf3d_demo2.html,
except that I would like to have a custom image instead of the filled
contours.

I googled the subject and found only messages dating at best from 2010.
These messages mentioned that the imshow() method did not work on a
mplot3d. Indeed it does not.
The only alternatives offered by the googled answer to my problem were
to switch to VTK or Mayavi. For one thing, I never managed to install
VTK on my PC, and I already have other matplotlib figures in my wxpython
application so I would really like to stick to matplotlib.

Does anyone have pointers as to how I could display a 2D image in
mplot3d? Do I need to create a new artist in order to replace the
non-functionning imshow?
I see that patch collections work fine in mplot3D. Would it be feasible
to load an image and have it displayed as a patch collection (1 patch
for each pixel)?

Any advice would be highly appreciated,

Fabrice

---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Correction for something I said earlier. I got my pcolor and pcolormesh objects mixed up. Neither the QuadMesh nor the PolyCollection from the two functions are image-based. So they do have a glimmer of hope of being converted into 3d. The PolyCollection is the best candidate as I think there is better support for that now in mplot3d. QuadMesh is a different beast, but might be tamable.

Sorry for any confusion.

Cheers!
Ben Root

···

On Thu, Oct 2, 2014 at 2:03 AM, Nicolas P. Rougier <Nicolas.Rougier@…3782…> wrote:

You might want to have a look at vispy.org, we implemented the wx backend and there are several examples available.

(and the new glumpy home is http://glumpy.github.io)

vispy examples at http://vispy.org/gallery.html

Nicolas

On 01 Oct 2014, at 20:27, Fabrice C. <kappamonagare@…527…> wrote:

Dear Ben,

Thank you for the explanation. Too bad mplot3d cannot display textured polygons.

I did have a look at glumpy and it does part of what I am looking for. However, glumpy does not support being embedded in a wxpython application which is a requisite for me.

I guess I just have to learn VTK…

Thanks again,

Fabrice

Benjamin Root <ben.root@…1836…304…> wrote:

I tried something like this awhile back to no avail. Because of the kludgy nature of mplot3d, we are lucky we even can display 2d artists like polygons (and, this is me speaking as the de facto maintainer of mplot3d!). Images are an entirely different beast, unfortunately.

What might work is getting a pcolormesh object converted into 3d. Not pcolor (as that is an image-based object), but the QuadMesh object that gets returned by pcolormesh(). I haven’t tried to convert that into a 3d equivalent, but it might be feasible.

I would also check out glumpy: https://code.google.com/p/glumpy/. I could have sworn I have seen examples of glumpy treating images as “texture” data for surfaces.

I hope this points you in a useful direction!

Ben Root

On Tue, Sep 30, 2014 at 5:54 PM, Fabrice C. <kappamonagare@…527…> wrote:

Dear list,

I would like to display a 2D image in a mplot3d axe in order to combine

it with a surface3D or a bar3d plot for instance. The effect I am

looking for is similar to what can be seen in the bottom XY plane of

http://matplotlib.org/1.4.0/examples/mplot3d/contourf3d_demo2.html,

except that I would like to have a custom image instead of the filled

contours.

I googled the subject and found only messages dating at best from 2010.

These messages mentioned that the imshow() method did not work on a

mplot3d. Indeed it does not.

The only alternatives offered by the googled answer to my problem were

to switch to VTK or Mayavi. For one thing, I never managed to install

VTK on my PC, and I already have other matplotlib figures in my wxpython

application so I would really like to stick to matplotlib.

Does anyone have pointers as to how I could display a 2D image in

mplot3d? Do I need to create a new artist in order to replace the

non-functionning imshow?

I see that patch collections work fine in mplot3D. Would it be feasible

to load an image and have it displayed as a patch collection (1 patch

for each pixel)?

Any advice would be highly appreciated,

Fabrice


This email is free from viruses and malware because avast! Antivirus protection is active.

http://www.avast.com


Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer

Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports

Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper

Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer

http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer

Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports

Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper

Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer

http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk_______________________________________________

Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users