MiBiPreT example: Contaminant Data Screening with Amersfoort data¶
Diagnostic plots for data analysis on microbial biodegredation at the contaminant Amersfoort site. Author: Alraune Zech
Data based on the PhD thesis of Johan van Leeuwen, 2021 'Biodegredation of mono- and polyaromatic hydrocarbons in a contaminated aquifer originating from a former Pintsch gas factory site' which is equivalent to the manuscript of van Leeuwen et al., 2022 'Anaerobic degradation of benzene and other aromatic hydrocarbons in a tar-derived plume: Nitrate versus iron reducing conditions', J. of Cont. Hydrol. The data was provided by Johan van Leeuwen.
Background: Amersfoort contaminant site¶
Close to the train station in Amersfoort, the Netherlands, the subsurface is contaminated with organic hydrocarbons forming a NAPL. Contamination originates from decades of operating manufactured gas plant, which dumped tar by-products in waste lagoons. The tar is a DNAPL and has spread into the underlying shallow unconfined aquifer. Sample wells were installed to measure various characteristics of the subsurface. The raw data contains measurements on
- environmental conditions, such as pH, redox potential, concentrations of oxygen, nitrate, etc
- contaminant concentration such as BTEX, indene, indane, naphtalene and multiple other (typically cyclic) petroleum hydrocarbons
- metabolite concentration, i.e. byproducts of degredation processes of contaminant
- isotope measurments for specific contaminants and samples
- counts of genes (RNA/DNA) of mibrobiota that is know to perform biodegredation as well as functional enzymes know to be responsible for biodegredation
Required packages
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import mibiscreen as mbs
Data loading¶
file_path = './amersfoort.xlsx'
Load and standardize data of contaminants:
contaminants_raw,units = mbs.load_excel(file_path,
sheet_name = 'contaminants',
verbose = False)
contaminants,units = mbs.standardize(contaminants_raw,
reduce = False,
verbose = False)
Load and standardize data of metabolites
Basic analysis of contaminant concentrations per sample¶
Concentrations of contaminants subsets¶
Total concentration of all contaminants provided in Excel-sheet/Dataframe:
contaminants_concentration = mbs.total_concentration(contaminants,
name_list = 'all',
#include_as = "concentration_contaminants",
verbose = True)
============================================================== Running function 'total_concentration()' on data ============================================================== Selecting all data columns except for those with settings. Selected set of quantities: --------------------------- isopropylbenzene indene 2_ethylnaphthalene pm_xylene styrene 4_ethyltoluene naphthalene 2_ethyltoluene o_xylene 1_methylnaphthalene 123_trimethylbenzene 124_trimethylbenzene benzene 2_methylnaphthalene ethylbenzene 1245_tetramethylbenzene toluene 2_methylindene 16_dimethylnaphthalene 135_trimethylbenzene n_propylbenzene 3_ethyltoluene 26_dimethylnaphthalene 13_diethylbenzene 4_isopropyltouene _____________________________________________________________ ________________________________________________________________ total concentration in [ug/l] is: 1 9 2 13344 3 4337 4 5781 5 87452 6 150695 7 57598 8 59496 9 3699 10 734 11 9 12 40 13 102811 14 66182 15 45938 16 26463 17 7911 18 9922 19 18826 20 27114 21 25733 22 10167 23 2301 24 1137 25 113 26 83 27 27 28 14985 29 10376 30 9 31 9 32 9 33 13 dtype: int64 --------------------------------------------------
equivalent to:
(now including results as own data column to data frame of contaminants)
mbs.total_contaminant_concentration(contaminants,
include = True,
verbose = True,
)
#display(contaminants)
============================================================== Running function 'total_contaminant_concentration()' on data ============================================================== ============================================================== Running function 'total_concentration()' on data ============================================================== Selecting specific group of contaminants: all_cont _____________________________________________________________ Selected set of quantities: --------------------------- isopropylbenzene indene 2_ethylnaphthalene pm_xylene styrene 4_ethyltoluene naphthalene 2_ethyltoluene o_xylene 1_methylnaphthalene 123_trimethylbenzene 124_trimethylbenzene benzene 2_methylnaphthalene ethylbenzene 1245_tetramethylbenzene toluene 2_methylindene 16_dimethylnaphthalene 135_trimethylbenzene n_propylbenzene 3_ethyltoluene 26_dimethylnaphthalene 13_diethylbenzene 4_isopropyltouene _____________________________________________________________ WARNING: There are quantities from name list not in data p_cresol benzo[a]pyrene 35_dimethylphenol 18_dimethylnaphthalene o_cresol 17_dimethylnaphthalene naphthalene_PAH phenanthrene 14_diethylbenzene 15_dimethylnaphthalene 23_dimethylnaphthalene 23_dimethylphenol 14_dimethylnaphthalene benzo[k]fluoranthene p_[tert]butylphenol phenol benzo[b]fluoranthene cresol tetramethylbenzene 13_dimethylnaphthalene 3_ethylphenol indane benzo[ghi]perylene 26_dimethylphenol chrysene methylindene 4_ethylphenol benzo[a]anthracene naphthalene_VOC m_cresol 2_isopropylphenol 12_diethylbenzene 1235_tetramethylbenzene diethylbenzene acenaphthylene 1234_tetramethylbenzene 12_dimethylnaphthalene 24_dimethylphenol 235_trimethylphenol indeno[1,2,3-cd]pyrene 34_dimethylphenol anthracene 2_ethylphenol 345_trimethylphenol acenaphthene 1_ethylnaphthalene 25_dimethylphenol 1_methylindene pyrene fluoranthene thymol dibenz[a,h]anthracene 27_dimethylnaphthalene ethyltoluene trimethylbenzene dimethylnaphthalene fluorene ethylnaphthalene methylnaphthalene Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________ ________________________________________________________________ total concentration in [ug/l] is: 1 9 2 13344 3 4337 4 5781 5 87452 6 150695 7 57598 8 59496 9 3699 10 734 11 9 12 40 13 102811 14 66182 15 45938 16 26463 17 7911 18 9922 19 18826 20 27114 21 25733 22 10167 23 2301 24 1137 25 113 26 83 27 27 28 14985 29 10376 30 9 31 9 32 9 33 13 dtype: int64 -------------------------------------------------- Series saved as column 'concentration_contaminants' within provided DataFrame ---------------------------------------------------------------------------
1 9 2 13344 3 4337 4 5781 5 87452 6 150695 7 57598 8 59496 9 3699 10 734 11 9 12 40 13 102811 14 66182 15 45938 16 26463 17 7911 18 9922 19 18826 20 27114 21 25733 22 10167 23 2301 24 1137 25 113 26 83 27 27 28 14985 29 10376 30 9 31 9 32 9 33 13 dtype: int64
Total concentration of contaminant subgroup: BTEX (Benzene, Toluene, Ethylbenzene, Xylene)
contaminants_BTEX = mbs.total_concentration(contaminants,
name_list = 'BTEX',
#include_as = "concentration_BTEX",
verbose = True,
)
============================================================== Running function 'total_concentration()' on data ============================================================== Selecting specific group of contaminants: BTEX _____________________________________________________________ Selected set of quantities: --------------------------- benzene ethylbenzene o_xylene toluene pm_xylene _____________________________________________________________ ________________________________________________________________ total concentration in [ug/l] is: 1 9 2 4136 3 620 4 880 5 32200 6 75984 7 40733 8 41599 9 361 10 378 11 9 12 12 13 40505 14 24700 15 26341 16 12531 17 3974 18 6756 19 10338 20 20638 21 18938 22 3771 23 1145 24 612 25 69 26 74 27 11 28 10741 29 7209 30 9 31 9 32 9 33 13 dtype: int64 --------------------------------------------------
equivalent to:(now including results as own data column to data frame of contaminants)
mbs.total_contaminant_concentration(contaminants,
contaminant_group = 'BTEX',
include = True,
verbose = False)
1 9 2 4136 3 620 4 880 5 32200 6 75984 7 40733 8 41599 9 361 10 378 11 9 12 12 13 40505 14 24700 15 26341 16 12531 17 3974 18 6756 19 10338 20 20638 21 18938 22 3771 23 1145 24 612 25 69 26 74 27 11 28 10741 29 7209 30 9 31 9 32 9 33 13 dtype: int64
Total concentration of contaminant subgroup: BTEX + Indene,Indane and Naphthalene
contaminants_BTEXIIN = mbs.total_concentration(contaminants,
name_list = 'BTEXIIN',
#include_as = "concentration_BTEXIIN",
verbose = True,
)
============================================================== Running function 'total_concentration()' on data ============================================================== Selecting specific group of contaminants: BTEXIIN _____________________________________________________________ Selected set of quantities: --------------------------- indene benzene ethylbenzene o_xylene toluene pm_xylene naphthalene _____________________________________________________________ WARNING: There are quantities from name list not in data indane Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________ ________________________________________________________________ total concentration in [ug/l] is: 1 9 2 12028 3 3513 4 4002 5 62336 6 114532 7 51158 8 52901 9 2029 10 603 11 9 12 18 13 75039 14 48031 15 37864 16 21281 17 7062 18 9406 19 17118 20 26253 21 25057 22 8855 23 1811 24 1033 25 101 26 82 27 27 28 14099 29 9651 30 9 31 9 32 9 33 13 dtype: int64 --------------------------------------------------
Using wrapper functions for specific type of data, the previous commands are equivalent to:
(now including results as own data column with standard name to data frame of contaminants)
mbs.total_contaminant_concentration(contaminants,
contaminant_group = 'BTEXIIN',
include = True,
verbose = False)
WARNING: There are quantities from name list not in data Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________
1 9 2 12028 3 3513 4 4002 5 62336 6 114532 7 51158 8 52901 9 2029 10 603 11 9 12 18 13 75039 14 48031 15 37864 16 21281 17 7062 18 9406 19 17118 20 26253 21 25057 22 8855 23 1811 24 1033 25 101 26 82 27 27 28 14099 29 9651 30 9 31 9 32 9 33 13 dtype: int64
Summed concentration of selected subgroup of contaminants: benzene & toluene
contaminants_BT = mbs.total_concentration(contaminants,
name_list = ['benzene','toluene'],
include_as = "concentration_BT",
verbose = True,
)
============================================================== Running function 'total_concentration()' on data ============================================================== Selecting all names from provided list. Selected set of quantities: --------------------------- toluene benzene _____________________________________________________________ ________________________________________________________________ total concentration in [ug/l] is: 1 7 2 2116 3 210 4 248 5 22287 6 62374 7 35246 8 36156 9 237 10 341 11 7 12 9 13 29769 14 17743 15 19817 16 8501 17 2982 18 6268 19 7704 20 15459 21 14925 22 2436 23 1074 24 559 25 55 26 69 27 10 28 7671 29 5895 30 7 31 7 32 7 33 13 dtype: int64 -------------------------------------------------- Series saved as column 'concentration_BT' within provided DataFrame ---------------------------------------------------------------------------
Visualization of contaminant concentrations per sample¶
Using mibiscreen plotting routine for concentration bar plots
list_contaminants = ['concentration_contaminants','concentration_BTEXIIN',
'concentration_BTEX','concentration_BT','benzene']
mbs.contaminants_bar(contaminants,
list_contaminants,
list_labels = ['all','BTEXIIN','BTEX','BT','B'],
sort = True,
figsize = [5.2,3],
textsize = 12,
save_fig = 'contaminants_bar.png',
yscale = 'log',
loc='upper left',
title_text = False,
)
Save Figure to file: contaminants_bar.png
(<Figure size 520x300 with 1 Axes>, <Axes: xlabel='Samples', ylabel='Total concentration [$\\mu$g/l]'>)
Producing the plot individually using matplotlib and numpy for individual adaptions:
sort_args = np.argsort(contaminants_concentration.values)
#sort_args = np.arange(len(contaminants_concentration.values))
plt.bar(np.arange(len(contaminants_concentration.values)),contaminants_concentration.values[sort_args],label='all')
plt.bar(np.arange(len(contaminants_BTEXIIN.values)),contaminants_BTEXIIN.values[sort_args],label='BTEXIIN')
plt.bar(np.arange(len(contaminants_BTEX.values)),contaminants_BTEX.values[sort_args],label='BTEX')
plt.bar(np.arange(len(contaminants_BT.values)),contaminants_BT.values[sort_args],label='BT')
plt.bar(np.arange(len(contaminants['toluene'].values)),contaminants['toluene'].values[sort_args],label='T')
plt.xlabel('Samples')
plt.ylabel(r'Total concentration [$\mu$g/l]')
plt.yscale('log')
plt.legend()
plt.title('Total concentration of contaminants per sample')
Text(0.5, 1.0, 'Total concentration of contaminants per sample')
Analysis of number of contaminants per sample¶
count_contaminants = mbs.total_count(contaminants,
name_list = 'all_cont',
verbose = True)
count_BTEXIIN = mbs.total_count(contaminants,
name_list = 'BTEXIIN',
verbose = True)
count_BTEX = mbs.total_count(contaminants,
name_list = 'BTEX',
verbose = True)
mbs.total_count(contaminants,
name_list = ['benzene'],
include_as = "count_benzene",
verbose = True)
============================================================== Running function 'total_count()' on data ============================================================== Selecting specific group of contaminants: all_cont _____________________________________________________________ Selected set of quantities: --------------------------- isopropylbenzene indene 2_ethylnaphthalene pm_xylene styrene 4_ethyltoluene naphthalene 2_ethyltoluene o_xylene 1_methylnaphthalene 123_trimethylbenzene 124_trimethylbenzene benzene 2_methylnaphthalene ethylbenzene 1245_tetramethylbenzene toluene 2_methylindene 16_dimethylnaphthalene 135_trimethylbenzene n_propylbenzene 3_ethyltoluene 26_dimethylnaphthalene 13_diethylbenzene 4_isopropyltouene _____________________________________________________________ WARNING: There are quantities from name list not in data p_cresol benzo[a]pyrene 35_dimethylphenol 18_dimethylnaphthalene o_cresol 17_dimethylnaphthalene naphthalene_PAH phenanthrene 14_diethylbenzene 15_dimethylnaphthalene 23_dimethylnaphthalene 23_dimethylphenol 14_dimethylnaphthalene benzo[k]fluoranthene p_[tert]butylphenol phenol benzo[b]fluoranthene cresol tetramethylbenzene 13_dimethylnaphthalene 3_ethylphenol indane benzo[ghi]perylene 26_dimethylphenol chrysene methylindene 4_ethylphenol benzo[a]anthracene naphthalene_VOC m_cresol 2_isopropylphenol 12_diethylbenzene 1235_tetramethylbenzene diethylbenzene acenaphthylene 1234_tetramethylbenzene 12_dimethylnaphthalene 24_dimethylphenol 235_trimethylphenol indeno[1,2,3-cd]pyrene 34_dimethylphenol anthracene 2_ethylphenol 345_trimethylphenol acenaphthene 1_ethylnaphthalene 25_dimethylphenol 1_methylindene pyrene fluoranthene thymol dibenz[a,h]anthracene 27_dimethylnaphthalene ethyltoluene trimethylbenzene dimethylnaphthalene fluorene ethylnaphthalene methylnaphthalene Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________ ________________________________________________________________ Number of quantities out of 25 exceeding concentration of 0.00 ug/l : 1 3 2 18 3 17 4 25 5 25 6 24 7 25 8 25 9 25 10 25 11 3 12 10 13 25 14 25 15 25 16 25 17 21 18 24 19 18 20 15 21 17 22 25 23 20 24 21 25 16 26 7 27 5 28 23 29 25 30 3 31 3 32 3 33 2 dtype: int64 -------------------------------------------------- ============================================================== Running function 'total_count()' on data ============================================================== Selecting specific group of contaminants: BTEXIIN _____________________________________________________________ Selected set of quantities: --------------------------- indene benzene ethylbenzene o_xylene toluene pm_xylene naphthalene _____________________________________________________________ WARNING: There are quantities from name list not in data indane Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________ ________________________________________________________________ Number of quantities out of 7 exceeding concentration of 0.00 ug/l : 1 3 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 7 11 3 12 6 13 7 14 7 15 7 16 7 17 7 18 7 19 7 20 7 21 7 22 7 23 7 24 7 25 7 26 6 27 5 28 7 29 7 30 3 31 3 32 3 33 2 dtype: int64 -------------------------------------------------- ============================================================== Running function 'total_count()' on data ============================================================== Selecting specific group of contaminants: BTEX _____________________________________________________________ Selected set of quantities: --------------------------- benzene ethylbenzene o_xylene toluene pm_xylene _____________________________________________________________ ________________________________________________________________ Number of quantities out of 5 exceeding concentration of 0.00 ug/l : 1 3 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 5 11 3 12 5 13 5 14 5 15 5 16 5 17 5 18 5 19 5 20 5 21 5 22 5 23 5 24 5 25 5 26 5 27 3 28 5 29 5 30 3 31 3 32 3 33 2 dtype: int64 -------------------------------------------------- ============================================================== Running function 'total_count()' on data ============================================================== Selecting all names from provided list. Selected set of quantities: --------------------------- benzene _____________________________________________________________ ________________________________________________________________ Number of quantities out of 1 exceeding concentration of 0.00 ug/l : 1 0 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 0 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 0 31 0 32 0 33 1 dtype: int64 -------------------------------------------------- Series saved as column 'count_benzene' within provided DataFrame ---------------------------------------------------------------------------
1 0 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 0 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 0 31 0 32 0 33 1 dtype: int64
Using wrapper functions for specific type of data, the previous commands are equivalent to:
(now including results with standard names as own data column to data frame of contaminants)
mbs.total_contaminant_count(contaminants,
contaminant_group = 'all',
include = True)
mbs.total_contaminant_count(contaminants,
contaminant_group = 'BTEXIIN',
include = True)
mbs.total_contaminant_count(contaminants,
contaminant_group = 'BTEX',
include = True)
WARNING: There are quantities from name list not in data Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________
1 3 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 5 11 3 12 5 13 5 14 5 15 5 16 5 17 5 18 5 19 5 20 5 21 5 22 5 23 5 24 5 25 5 26 5 27 3 28 5 29 5 30 3 31 3 32 3 33 2 dtype: int64
Visualization of number of contaminants per sample¶
list_counts = ['count_contaminants','count_BTEXIIN','count_BTEX','count_benzene']
mbs.contaminants_bar(contaminants,
list_counts,
list_labels = ['all','BTEXIIN','BTEX','B'],
sort = True,
figsize = [5.2,3],
textsize = 12,
ylabel = 'Total count',
yscale = 'linear',
save_fig = 'count_bar.png',
loc='upper left',
title_text = False,
)
Save Figure to file: count_bar.png
(<Figure size 520x300 with 1 Axes>, <Axes: xlabel='Samples', ylabel='Total count'>)
Producing the plot individually using matplotlib and numpy for individual adaptions:
plt.figure(num=2)
plt.bar(np.arange(len(count_contaminants.values)),np.sort(count_contaminants.values),label='all')
plt.bar(np.arange(len(count_BTEXIIN.values)),np.sort(count_BTEXIIN.values),label='BTEXIIN')
plt.bar(np.arange(len(count_BTEX.values)),np.sort(count_BTEX.values),label='BTEX')
plt.xlabel('Samples')
plt.ylabel('Total number')
plt.title('Total number of contaminants per sample')
plt.legend()
<matplotlib.legend.Legend at 0x7f115fd0e710>
Evaluation of intervention threshold exceedance¶
data_thresh_ratio = mbs.thresholds_for_intervention_ratio(contaminants)
display(data_thresh_ratio)
WARNING: There are quantities from name list not in data Maybe data not in standardized format. Run 'standardize()' first. _________________________________________________________________
| indene_thr_ratio | benzene_thr_ratio | ethylbenzene_thr_ratio | o_xylene_thr_ratio | toluene_thr_ratio | pm_xylene_thr_ratio | naphthalene_thr_ratio | |
|---|---|---|---|---|---|---|---|
| 1 | 0.000000 | 0.000000 | 0.006667 | 0.000000 | 0.007 | 0.014286 | 0.000000 |
| 2 | 18.328571 | 1.166667 | 1.886667 | 6.485714 | 2.081 | 18.328571 | 94.414286 |
| 3 | 1.971429 | 0.200000 | 0.480000 | 1.128571 | 0.204 | 3.700000 | 39.357143 |
| 4 | 5.657143 | 0.400000 | 0.633333 | 2.557143 | 0.236 | 5.114286 | 38.942857 |
| 5 | 89.514286 | 33.566667 | 9.153333 | 38.257143 | 21.280 | 83.742857 | 341.000000 |
| 6 | 100.800000 | 1012.333333 | 13.953333 | 52.757143 | 32.004 | 111.771429 | 449.885714 |
| 7 | 53.900000 | 751.866667 | 7.153333 | 22.628571 | 12.690 | 40.428571 | 95.028571 |
| 8 | 53.071429 | 768.800000 | 5.793333 | 22.271429 | 13.092 | 43.071429 | 108.385714 |
| 9 | 2.257143 | 1.000000 | 0.093333 | 0.857143 | 0.207 | 0.714286 | 21.571429 |
| 10 | 0.557143 | 11.033333 | 0.113333 | 0.128571 | 0.010 | 0.157143 | 2.657143 |
| 11 | 0.000000 | 0.000000 | 0.006667 | 0.000000 | 0.007 | 0.014286 | 0.000000 |
| 12 | 0.085714 | 0.066667 | 0.006667 | 0.014286 | 0.007 | 0.014286 | 0.000000 |
| 13 | 97.071429 | 503.866667 | 11.120000 | 42.957143 | 14.653 | 86.585714 | 396.271429 |
| 14 | 62.314286 | 231.500000 | 7.180000 | 28.171429 | 10.798 | 55.828571 | 270.985714 |
| 15 | 51.942857 | 271.666667 | 9.526667 | 25.314286 | 11.667 | 47.471429 | 112.671429 |
| 16 | 42.971429 | 28.233333 | 3.933333 | 17.585714 | 7.654 | 31.557143 | 82.028571 |
| 17 | 18.342857 | 71.766667 | 2.906667 | 4.385714 | 0.829 | 3.557143 | 25.771429 |
| 18 | 19.142857 | 206.666667 | 1.913333 | 1.328571 | 0.068 | 1.542857 | 18.714286 |
| 19 | 24.300000 | 57.900000 | 3.080000 | 10.200000 | 5.967 | 20.828571 | 72.557143 |
| 20 | 19.271429 | 503.433333 | 21.426667 | 11.300000 | 0.356 | 16.771429 | 60.942857 |
| 21 | 21.071429 | 464.533333 | 15.046667 | 10.385714 | 0.989 | 14.700000 | 66.342857 |
| 22 | 16.885714 | 71.800000 | 4.586667 | 4.871429 | 0.282 | 4.371429 | 55.742857 |
| 23 | 4.271429 | 35.033333 | 0.340000 | 0.185714 | 0.023 | 0.100000 | 5.242857 |
| 24 | 4.857143 | 17.500000 | 0.033333 | 0.457143 | 0.034 | 0.228571 | 1.157143 |
| 25 | 0.185714 | 1.300000 | 0.040000 | 0.042857 | 0.016 | 0.071429 | 0.271429 |
| 26 | 0.114286 | 1.866667 | 0.013333 | 0.014286 | 0.013 | 0.028571 | 0.000000 |
| 27 | 0.042857 | 0.100000 | 0.000000 | 0.000000 | 0.007 | 0.014286 | 0.185714 |
| 28 | 13.314286 | 251.666667 | 12.640000 | 6.157143 | 0.121 | 10.614286 | 34.657143 |
| 29 | 14.171429 | 193.333333 | 6.866667 | 1.685714 | 0.095 | 2.371429 | 20.714286 |
| 30 | 0.000000 | 0.000000 | 0.006667 | 0.000000 | 0.007 | 0.014286 | 0.000000 |
| 31 | 0.000000 | 0.000000 | 0.006667 | 0.000000 | 0.007 | 0.014286 | 0.000000 |
| 32 | 0.000000 | 0.000000 | 0.006667 | 0.000000 | 0.007 | 0.014286 | 0.000000 |
| 33 | 0.000000 | 0.066667 | 0.000000 | 0.000000 | 0.011 | 0.000000 | 0.000000 |
fig,ax = mbs.threshold_ratio_bar(data_thresh_ratio,
list_samples = [31,9,11],
figsize = [12,3],
nrows=1,ncols=3,
list_colors = ['olive','lightblue','tomato'],
sharey = True,
grid = True,
)
quantities = ['toluene','naphthalene','indene','pm_xylene','ethylbenzene','o_xylene','benzene']
mbs.threshold_ratio_bar(data_thresh_ratio,
list_samples = [9],
list_labels = quantities,
figsize = [6,3],
unity_line = True,
title_text= 'Evaluation of threshold exceedance for BTEXIIN',
)
(<Figure size 600x300 with 1 Axes>,
<Axes: title={'center': 'Evaluation of threshold exceedance for BTEXIIN'}, xlabel='ratio to threshold concentration $C/C_\\mathrm{threshold}$'>)