In [ ]:
import numpy as np
import pandas as pd
import re
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
In [ ]:
def get_data(filepath, i=-1):
data = pd.read_csv(filepath)
reactions = []
species = []
for column in data.columns:
if 'dln[k' in column:
reactions.append((column, data[column].iloc[-1]))
elif 'dG[' in column:
species.append((column, data[column].iloc[-1]))
reactions.sort(key=lambda x: abs(x[1]), reverse=True)
species.sort(key=lambda x: abs(x[1]), reverse=True)
return reactions, species
In [ ]:
def plot_sens(data, n, xlab, ylab=None):
plt.style.use('seaborn-paper')
plt.rcParams['axes.labelsize'] = 16
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12
fig, ax = plt.subplots(figsize=(3, 3))
selected = data[:n]
labels, values = zip(*selected)
pos = np.arange(len(labels))
ax.barh(pos, values, color='k')
#ax.set_aspect('equal', adjustable='box')
ax.invert_yaxis()
ax.set_yticks(pos)
if ylab is not None:
ax.set_yticklabels(ylab)
else:
ax.set_yticklabels(labels)
ax.set_xlabel(xlab)
In [ ]:
filepath = '/home/mjliu/Documents/Models/Naphthalene/acetylene/run10/sensitivity/sensitivity_1_SPC_1.csv'
reactions, species = get_data(filepath)
ylab_rxn = [
'1-iodonaphthalene + H = naphthalene + I',
'1-naphthyl + C2H2 = 1-vinylnaphthalene',
'1-naphthyl + H = naphthalene',
'H + C2H3 = H2 + H2CC',
'H + C2H2 (+M) = C2H3 (+M)',
]
ylab_spc = [
'C2H2',
'naphthalene',
'H',
'C2H3',
'C1=CC2CC=C1c1ccccc12',
]
plot_sens(reactions, 5, 'dln(c)/dln(k)')#, ylab_rxn)
plot_sens(species, 5, 'dln(c)/dG (mol/kcal)')#, ylab_spc)
In [ ]:
filepath = '/home/mjliu/Documents/Models/Naphthalene/acetylene/run10/sensitivity/sensitivity_1_SPC_5.csv'
reactions, species = get_data(filepath)
ylab_rxn = [
'1-naphthyl + C2H2 = 1-vinylnaphthalene',
'1-iodonaphthalene + H = naphthalene + I',
'2-naphthyl = 1-naphthyl',
'1-naphthyl + H = naphthalene',
'1-vinylnaphthalene = [CH]1C=CC2C=Cc3cccc1c32',
]
ylab_spc = [
'1-naphthyl',
'2-naphthyl',
'1-vinylnaphthalene',
'[CH]1C=C2C=CC1c1ccccc12',
'H',
]
plot_sens(reactions, 5, 'dln(c)/dln(k)')#, ylab_rxn)
plot_sens(species, 5, 'dln(c)/dG (mol/kcal)')#, ylab_spc)
In [ ]: