Files
dima/visualization/napp_plotlib.py

55 lines
2.2 KiB
Python

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def plot_image(dataframe,filter):
for meas_idx in dataframe.loc[filter,:].index:
meas = dataframe.loc[meas_idx,:] # pandas Series
fig = plt.figure()
ax = plt.gca()
rows, cols = meas['image'].shape
scientaEkin_eV = meas['scientaEkin_eV'].flatten()
x_min, x_max = np.min(scientaEkin_eV), np.max(scientaEkin_eV)
y_min, y_max = 0, rows
ax.imshow(meas['image'],extent = [x_min,x_max,y_min,y_max])
ax.set_xlabel('scientaEkin_eV')
ax.set_ylabel('Replicates')
ax.set_title(meas['name'][0] + '\n' + meas['sample'][0]+ '\n' + meas['lastModifiedDatestr'][0])
def plot_spectra(dataframe,filter):
""" plot_spectra plots XPS spectra associated to 'dataframe' after row reduced by 'filter'.
When more than one row are specified by the 'filter' input, indivial spectrum are superimposed
on the same plot.
Parameters:
dataframe (pandas.DataFrame): table with heterogenous entries obtained by read_hdf5_as_dataframe.py.
filter (binaray array): binary indexing array with same number of entries as rows in dataframe.
"""
fig = plt.figure()
ax = plt.gca()
for meas_idx in dataframe.loc[filter,:].index:
meas = dataframe.loc[meas_idx,:] # pandas Series
rows, cols = meas['image'].shape
bindingEnergy_eV = meas['bindingEnergy_eV'].flatten()
spectrum_countsPerSecond = meas['spectrum_countsPerSecond'].flatten()
x_min, x_max = np.min(bindingEnergy_eV), np.max(bindingEnergy_eV)
y_min, y_max = 0, rows
#for i in range(cols):
#ax.plot(bindingEnergy_eV, spectrum_countsPerSecond,label = meas['name'][0])
ax.plot(bindingEnergy_eV, spectrum_countsPerSecond,label = meas['name'])
ax.set_xlabel('bindingEnergy_eV')
ax.set_ylabel('counts Per Second')
ax.set_title('\n'+meas['sample']+ '\n' + 'PE spectra')
#ax.set_title('\n'+meas['sample'][0]+ '\n' + 'PE spectra')
#ax.set_title(meas['name'][0] + '\n'+meas['sample'][0]+ '\n' + meas['lastModifiedDatestr'][0])
ax.legend()