Ich erstelle ein Mesh-Plot mit mayavi.mlab und möchte, dass die Hintergrund-Opazität 0. (oder transparent) ist. Ist das möglich?Kann Mayavi eine Figurenszene mit transparentem Hintergrund rendern?
Antwort
Sie können die Transparenz nicht direkt festlegen. Sie können jedoch die Figur mit einer Hintergrundfarbe (anders als die Vordergrundfarbe) und verwenden ImageMagick speichern den Hintergrund
Zum Beispiel entfernen
mlab.figure(size = (1024,768),\
bgcolor = (1,1,1), fgcolor = (0.5, 0.5, 0.5))
# Your fantastic plotting script
mlab.save('pure_beauty.png')
jetzt ImageMagick verwenden, um den Hintergrund
convert pure_beauty.png -transparent white pure_transparent_beauty.png
zu entfernen
wie gezeigt here.
Wenn es Ihr Ziel ist, die Mayavi-Figur in eine Matplotlib-Figur zu integrieren, ist dies möglich. Sie können mlab.screenshot
verwenden, um eine Anzahl von RGBA-Werten zu erhalten, und mlab
setzt Hintergrundpixel automatisch auf 0
. Sie können diese RGBA-Matrix dann über imshow
zu einer Matlab-Figur hinzufügen. Beispiel (angepasst von here):
import numpy as np
from mayavi import mlab
import matplotlib.pyplot as plt
# set up some plotting params
dphi, dtheta = np.pi/250.0, np.pi/250.0
[phi, theta] = np.mgrid[0:np.pi + dphi * 1.5:dphi,
0:2 * np.pi + dtheta * 1.5:dtheta]
m0, m1, m2, m3 = 4, 3, 2, 3
m4, m5, m6, m7 = 6, 2, 6, 4
r = np.sin(m0 * phi) ** m1 + np.cos(m2 * phi) ** m3 + \
np.sin(m4 * theta) ** m5 + np.cos(m6 * theta) ** m7
x = r * np.sin(phi) * np.cos(theta)
y = r * np.cos(phi)
z = r * np.sin(phi) * np.sin(theta)
# do the meshplot
fig = mlab.figure(size=(480, 340))
mlab.mesh(x, y, z, colormap='cool', figure=fig)
imgmap = mlab.screenshot(figure=fig, mode='rgba', antialiased=True)
mlab.close(fig)
# do the matplotlib plot
fig2 = plt.figure(figsize=(7, 5))
plt.imshow(imgmap, zorder=4)
plt.plot(np.arange(0, 480), np.arange(480, 0, -1), 'r-')
plt.savefig('example.png')
können Sie auch die RGBA-Array speichern nur direkt mit plt.imsave(arr=imgmap, fname="foo.png")
Wenn ich diesen genauen Code ausführe, funktioniert es nicht (d. H. Die Mayavi-Figur hat einen grauen Hintergrund anstelle von transparent). –
Es funktioniert gut für mich: 'mayavi' Version' 4.5.0' & 'matplotlib' Version' 1.5.1'. – ryanjdillon
- 1. PreferenceFragment mit transparentem Hintergrund?
- 2. DialogFragment mit transparentem Hintergrund
- 3. Aktivität mit transparentem Hintergrund
- 4. BottomSheetDialog mit transparentem Hintergrund
- 5. javafx2.2 macht eine Bildlaufleiste mit transparentem Hintergrund
- 6. WideImage - Canvas mit transparentem Hintergrund
- 7. MPMoviePlayerViewController mit transparentem Hintergrund laden?
- 8. Android AlertDialog mit transparentem Hintergrund
- 9. So erstellen Sie einen Film mit transparentem Hintergrund im Handumdrehen mit transparentem Hintergrund
- 10. heruntergeladen png bild mit transparentem hintergrund zeigt mit schwarzem hintergrund
- 11. Transparente Schrift auf transparentem Hintergrund
- 12. Augmented Reality Videospiel mit transparentem Hintergrund
- 13. Button Border mit transparentem Hintergrund in Swift
- 14. Schwarzer Hintergrund auf transparentem UITabBar
- 15. UIRefreshControl mit transparentem Hintergrund über UISearchController
- 16. Matlab: Speicher Abbildung mit transparentem Hintergrund
- 17. OpenGL ES 2.0 GLKit mit transparentem Hintergrund
- 18. Monotouch/IOS: Wie mit transparentem Hintergrund
- 19. JavaScript abgerundete Ecken mit transparentem Hintergrund
- 20. Swift Modal View Controller mit transparentem Hintergrund
- 21. Hintergrund mit transparentem Bild in PIL verschmelzen
- 22. SVG-Pfad mit Bildfilter aber transparentem Hintergrund
- 23. Wie kann ich einen glSurfaceView mit transparentem Hintergrund anzeigen?
- 24. Wie kann ich Plots von Matplotlib mit transparentem Hintergrund exportieren?
- 25. R-Plot-Legende mit transparentem Hintergrund
- 26. Android Tabs mit transparentem Hintergrund unscharf
- 27. Wie kann ich ein PatternBrush mit transparentem Hintergrund (GDI) zeichnen?
- 28. FullCalendar.js: Hintergrund mit Zeitlabels rendern?
- 29. Wie kann ich eine Webseite in einem Fenster mit transparentem Hintergrund mit C# anzeigen?
- 30. Erstellen Sie ein Bild mit transparentem Hintergrund mit GDI +?
Welche Ergebnis Datei erwarten Sie? Genauer: Was erwarten Sie von diesem transparenten Hintergrund? Versuchen Sie, Bilder mit einigen 3D gerenderten Objekten auf einem anderen Hintergrund zu erstellen? Oder versuchen Sie vielleicht, dass Ihr Fenstermanager die Szene auf einen anderen Hintergrund zusammensetzt? Das erste Szenario ist wahrscheinlich mit Nachbearbeitungshilfe möglich. Das zweite ist definitiv nicht. Geben Sie genauer an, was Sie zu tun versuchen. – aestrivex