from pathlib import Path
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from matplotlib import font_manager
ROOT=Path(__file__).resolve().parents[1]
out=ROOT/'outputs'; out.mkdir(exist_ok=True)
candidates=['Microsoft YaHei','SimHei','Noto Sans CJK SC','WenQuanYi Zen Hei']
available={f.name for f in font_manager.fontManager.ttflist}
chosen=next((f for f in candidates if f in available),None)
if chosen:
    plt.rcParams['font.sans-serif']=[chosen]
    plt.rcParams['axes.unicode_minus']=False
else:
    print('No CJK font: using English labels; install a local CJK font for Chinese figures.')
days=[1,2,3]; net=[10,15,12]
assert len(days)==len(net)
fig,axes=plt.subplots(1,3,figsize=(11,3.4),layout='constrained')
axes[0].plot(days,net,marker='o',label='daily net')
axes[0].set(title='Daily net amount',xlabel='Day',ylabel='Amount (CNY)')
axes[0].legend()
axes[1].bar(['A','B','C'],[5,8,3])
axes[1].set(title='Paid users by channel',xlabel='Channel',ylabel='Users',ylim=(0,10))
axes[2].scatter([1,2,3],[10,15,12])
axes[2].set(title='Visits and spend',xlabel='Visits',ylabel='Spend (CNY)')
for ax in axes:
    ax.grid(axis='y',alpha=.2)
path=out/'mpl-basics.png'; fig.savefig(path,dpi=150,bbox_inches='tight'); plt.close(fig)
assert path.is_file() and path.stat().st_size>1000
print('saved',path.name,'daily total',sum(net),'font',chosen or 'English fallback')
