55 lines
2.2 KiB
Python
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()
|
|
|
|
|
|
|