53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import matplotlib.pyplot as plt
|
|
from .spin_image import SpinImage, FFT
|
|
import matplotlib
|
|
|
|
|
|
class Plotter:
|
|
def __init__(self, lat):
|
|
self.lattice = lat
|
|
self.length_2 = 0.05
|
|
|
|
def plot_spins(self, si: SpinImage, ax_log=None, ax_lin=None):
|
|
if ax_log:
|
|
t = ax_log.imshow(
|
|
si.img,
|
|
extent=(0, si.length_x, 0, si.length_y),
|
|
norm=matplotlib.colors.LogNorm(vmin=1e-12),
|
|
cmap="viridis",
|
|
origin="lower"
|
|
)
|
|
plt.colorbar(t, ax=ax_log, extend="min")
|
|
if ax_lin:
|
|
t = ax_lin.imshow(
|
|
si.img,
|
|
extent=(0, si.length_x, 0, si.length_y),
|
|
cmap="viridis",
|
|
origin="lower"
|
|
)
|
|
plt.colorbar(t, ax=ax_lin, extend="min")
|
|
|
|
def plot_fft(self, fft: FFT, ax_log=None, ax_lin=None, evaluator=None):
|
|
if ax_log:
|
|
if evaluator:
|
|
evaluator.debug(fft)
|
|
t = ax_log.imshow(
|
|
fft.intens,
|
|
extent=fft.extents(),
|
|
norm=matplotlib.colors.LogNorm(),
|
|
cmap="viridis",
|
|
origin="lower"
|
|
)
|
|
plt.colorbar(t, ax=ax_log, extend="min")
|
|
|
|
if ax_lin:
|
|
t = ax_lin.imshow(
|
|
fft.intens,
|
|
extent=fft.extents(),
|
|
cmap="viridis",
|
|
origin="lower"
|
|
)
|
|
plt.colorbar(t, ax=ax_lin, extend="min")
|
|
ax_lin.set_xlim(-2, 2)
|
|
ax_lin.set_ylim(-2, 2)
|