Plotting Raw Data with Pyleoclim#
This notebook lays out the details of how we plot raw data using Pyleoclim objects that we loaded in the Load Data notebook.
The notebook is structured as follows:
Load and plot the raw records
# Importing relevant packages
import pickle
import pyleoclim as pyleo
import matplotlib.pyplot as plt
# Importing the data
with open("../../data/plotting_series_dict.pkl", "rb") as handle:
plotting_series_dict = pickle.load(handle)
with open("../../data/cmap_grouped.pkl", "rb") as handle:
cmap_grouped = pickle.load(handle)
with open("../../data/marker_dict.pkl", "rb") as handle:
marker_dict = pickle.load(handle)
Pyleoclim has some built-in plotting functionalities for multiple records (e.g. stackplot), but we’re going to do something slightly more bespoke as we want to have multiple columns:
# Plotting the data
plot_order = [
"Kesang.China.2012",
"Linzhu.China.2009",
"Bittoo.India.2016",
"Dongge.China.2004",
"Sanbao.China.2016",
"CuevadelDiamante.Peru.2013",
"Botuvera.Brazil.2005",
"Leviathan.Nevada.2017",
"DevilsHole.Nevada.2017",
"BuckeyeCreek.WestVirginia.2019",
"Peqiin.Israel.2003",
"JerusalemWest.Jerusalem.1999",
"Soreq.Israel.2003",
"Clearwater.Borneo.2016",
]
fig = plt.figure(figsize=(16, 22))
gs = fig.add_gridspec(7, 2)
for idx, label in enumerate(plot_order):
ts = plotting_series_dict[label]
if idx <= 6:
gs_slot = gs[idx, 0]
else:
gs_slot = gs[idx - 7, 1]
ts.value_name = r"$\delta^{18}O$"
ts.value_unit = "‰"
ax = fig.add_subplot(gs_slot)
ts.plot(ax=ax, color=cmap_grouped[ts.label])
ax.legend(
handles=[
plt.Line2D(
[0],
[0],
marker=marker_dict[label],
color=cmap_grouped[label],
label=label,
markersize=10,
linestyle="None",
)
]
).set_visible(True)
ax.invert_xaxis()
if idx in [6, 13]:
pass
else:
ax.set_xlabel("")
if idx in [0, 1, 2, 3, 4, 5, 6]:
pass
else:
ax.set_ylabel("")
