"""Original repeat-unit bookkeeping model; run from _media to write PNG there.""" from pathlib import Path import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt labels=['Initial','After cuts','After short\nfragments leave'] units=np.array([1_000_000,1_000_000,980_000]) chains=np.array([1_000,10_000,8_000]) dp=units/chains fraction=units/units[0] fig,axes=plt.subplots(1,2,figsize=(8,3.4),dpi=120,layout='constrained') fig.patch.set_facecolor('white') fig.suptitle('Chain cuts and fragment loss measure different changes',fontsize=12) colors=['#2463a6','#bd702b','#34835c'] for ax,data,title,ylim in zip(axes,[dp,fraction],['Number-average repeat units per chain','Retained repeat-unit mass fraction'],[(0,1180),(0,1.2)]): bars=ax.bar(np.arange(3),data,color=colors,width=.58) ax.set(xticks=np.arange(3),xticklabels=labels,title=title,ylim=ylim) ax.tick_params(axis='x',labelsize=9) for bar,v in zip(bars,data): text=f'{v:g}' if ax is axes[0] else f'{v:.0%}' ax.annotate(text,(bar.get_x()+bar.get_width()/2,v),xytext=(0,5),textcoords='offset points',ha='center',fontsize=10) ax.spines[['top','right']].set_visible(False) ax.grid(axis='y',alpha=.2);ax.set_axisbelow(True) fig.savefig(Path('pga-scission-and-fragment-loss.png'),facecolor='white')