Ich möchte eine 2D-Hanning-Fensterfunktion für ein Bild mit N=512
Pixel mit einem Farbbalken als Vektorgrafik (*.svg
, *.eps
, (vektorisiert) !) *.pdf
oder so) ... also muss ichErstellen Sie eine Vektorgrafik (Svg, Eps, PDF) "Heatmap" von 2D-Funktion mit Colorbar
w(x,y) = sin(x*pi/N)^2 * sin(y*pi/N)^2
Meine Lösung für dieses python
war eine 2D-Funktion zeichnen zuerst: Das Ergebnis dieses Bild ist
import numpy as np
from PIL import Image
im_hanning = Image.new("F", (N, N))
pix_hanning = im_hanning.load()
for x in range(0, N):
for y in range(0, N):
pix_hanning[x,y] = np.sin(x*np.pi/N)**2 * np.sin(y*np.pi/N)**2 * 255
im_hanning = Image.fromarray(array)
:
Aber das ist natürlich eine Rastergrafik.
Also habe ich es mit gnuplot
versucht. Dies schien besser, bis ich das Ergebnis sah:
set xrange [0:1]
set yrange [0:1]
unset xtics
unset ytics
set pm3d map
set size square
set samples 512
set isosamples 512
set palette gray
splot sin(x*pi)**2 * sin(y*pi)**2
ich die Proben erhöhen musste, sonst sah es schrecklich ... Das Ergebnis sieht gut aus:
Besonders gut gefällt mir die colorbar auf der rechten Seite. Aber das erzeugt (egal welches Terminal ich eingestellt habe) Rastergrafiken wieder.
Gibt es eine Möglichkeit, eine 2D-Funktion als Vektorgrafiken zu plotten?
Oh, und was ich gerade sehe: Der Farbverlauf der Bilder ist nicht identisch, oder? Was ist der "richtige" Farbverlauf, was ist los? Vermisse ich etwas? – nox