[plotter] add embeded mode

This commit is contained in:
Noe Brucy
2021-07-20 13:11:06 +02:00
parent 4daf40c6b0
commit 899a969f25
+21 -13
View File
@@ -29,6 +29,7 @@ import datetime
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from moviepy.video.io.ImageSequenceClip import ImageSequenceClip from moviepy.video.io.ImageSequenceClip import ImageSequenceClip
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import pspec_read import pspec_read
from baseprocessor import Rule, BaseProcessor from baseprocessor import Rule, BaseProcessor
@@ -568,7 +569,6 @@ class Plotter(Aggregator, BaseProcessor):
center_space=False, center_space=False,
cmap="plasma", cmap="plasma",
norm="log", norm="log",
put_cbar=True,
transform=None, transform=None,
vmin=None, vmin=None,
vmax=None, vmax=None,
@@ -576,19 +576,23 @@ class Plotter(Aggregator, BaseProcessor):
scalebar_size=1, scalebar_size=1,
axes=True, axes=True,
colorbar=True, colorbar=True,
tight_cb=False, embeded=False,
**kwargs, **kwargs,
): ):
""" """
Plot data on a map Plot data on a map
""" """
ax = plt.gca()
ax_h = self._axes_h[ax_los] ax_h = self._axes_h[ax_los]
ax_v = self._axes_v[ax_los] ax_v = self._axes_v[ax_los]
im_extent = np.array(self.save.root.maps._v_attrs.im_extent) im_extent = np.array(self.save.root.maps._v_attrs.im_extent)
unit_length = self.save.root._v_attrs["unit_length"] unit_length = self.save.root._v_attrs["unit_length"]
if embeded:
axes = False
scalebar = True
if center_space: if center_space:
center = self.save.root.maps._v_attrs.center center = self.save.root.maps._v_attrs.center
center_h = center[self._ax_nb[ax_h]] center_h = center[self._ax_nb[ax_h]]
@@ -652,16 +656,14 @@ class Plotter(Aggregator, BaseProcessor):
plt.yticks([]) plt.yticks([])
if colorbar: if colorbar:
if tight_cb: if embeded:
ax = plt.gca() cbaxes = inset_axes(ax, width="10%", height="100%", loc="right", borderpad=0)
fig = plt.gcf() cbar = plt.colorbar(cax=cbaxes, orientation='vertical')
cax = fig.add_axes([ cbaxes.yaxis.set_ticks_position('left')
ax.get_position().x1, cbaxes.yaxis.set_tick_params(color="white", which="both")
ax.get_position().y0, plt.setp(plt.getp(cbaxes.axes, 'yticklabels'), color="white")
0.03, cbar.outline.set_edgecolor("white")
ax.get_position().height cbaxes.tick_params(axis="y",direction="in", pad=-25)
])
cbar = plt.colorbar(cax=cax)
else: else:
try: try:
cbar = plt.colorbar(im, cax=plt.gca().cax) cbar = plt.colorbar(im, cax=plt.gca().cax)
@@ -672,6 +674,9 @@ class Plotter(Aggregator, BaseProcessor):
if put_title: if put_title:
title = self.snapshot_title(run, title, nml_key, put_time, unit_time) title = self.snapshot_title(run, title, nml_key, put_time, unit_time)
if embeded:
ax.text(x=0.05, y=0.95, s=title, color="white", transform=ax.transAxes)
else:
plt.title(title) plt.title(title)
for i, plot_overlay in enumerate(overlays): for i, plot_overlay in enumerate(overlays):
@@ -690,6 +695,9 @@ class Plotter(Aggregator, BaseProcessor):
except IndexError: except IndexError:
plot_overlay(ax_los, im_extent) plot_overlay(ax_los, im_extent)
if embeded:
plt.subplots_adjust(left=0, right=1, top=1, bottom=0)
return PlotInfo( return PlotInfo(
plot_type=PlotType.IMAGE, plot_type=PlotType.IMAGE,
xaxis_values=np.linspace(im_extent[0], im_extent[1], dmap.shape[0] + 1), xaxis_values=np.linspace(im_extent[0], im_extent[1], dmap.shape[0] + 1),