Haftungsausschluss:
- Normalerweise programmiere ich nicht in Python, es sei denn, ich muss den Code eines anderen korrigieren
- Ich habe Matplotlib noch nie verwendet - dies ist mein erster Versuch, es zu verwenden, und da es interessant aussah, der EINZIGE Grund, warum ich diese Antwort poste.
Jetzt eine robustere Antwort: (Nicht, dass ich gerne Hausaufgaben für Doktoranden mache ...)
Alles hier wurde von der matplotlib-Website (siehe Beispiele) und von Stack Overflow (matplotlib save fig fig trim) gestohlen. Ich habe es nur kopiert / eingefügt und getestet.
Die resultierende Datei out.svg kann direkt in Inkscape geöffnet werden. Das Bild ist eine Gruppe / Gruppen kleinerer Bilder. Klicken Sie auf einen beliebigen Teil des Bildes und verwenden Sie dann die Option "Gruppierung aufheben" von Inkscape. Möglicherweise müssen Sie die Gruppierung einige Male aufheben, um einen Teil des Bildes direkt bearbeiten zu können.
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
#plt.show()
fig.set_size_inches(4,3)
fig.set_dpi(40)
fig.savefig('out.svg', transparent=True, bbox_inches='tight', pad_inches=0)