库与画图主题:import / rcParams
右上角 Viz style 切换配色;后面所有画图代码只用
MAIN、ACCENT、CMAP 这些名字,四套通用。import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
import glob, matplotlib
from matplotlib import font_manager as fm
for f in glob.glob(r'F:\2026fall_skd\练习\画图字体\NotoSerifSC-*.ttf'):
fm.fontManager.addfont(f) # 本机字体;别的电脑没有这个文件夹,自动跳过
have = {f.name for f in fm.fontManager.ttflist}
# ---- WYX Only:粉蓝马卡龙 ----
CN = [f for f in ['Noto Serif SC', 'Source Han Serif SC', 'Songti SC', 'STSong', 'SimSun', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', 'WenQuanYi Zen Hei'] if f in have] # 宋体优先,没有再退到黑体
MAIN, MAIN_D, MAIN_L = '#a9c8ea', '#6f93c6', '#c9dcf2' # 主色:浅蓝 / 深蓝 / 很浅的蓝
ACCENT, ACCENT_D = '#f4b6ca', '#e0819f' # 强调色:浅粉 / 深粉
GRAY, BG = '#a89dab', '#fffbfc' # 注释文字 / 带粉的白底
CMAP = sns.blend_palette([ACCENT_D, '#fbe1ea', BG, MAIN_L, '#86abdb', '#4f7fb8', '#2d4a78'], as_cmap=True) # 负粉 → 白 → 正蓝
sns.set_theme(style='white')
plt.rcParams.update({
'font.family': CN + ['DejaVu Sans'], 'axes.unicode_minus': False,
'figure.facecolor': BG, 'axes.facecolor': BG, 'savefig.facecolor': BG,
'figure.dpi': 110, 'figure.constrained_layout.use': True,
'axes.spines.top': False, 'axes.spines.right': False,
'axes.edgecolor': '#e3d6dc', 'axes.linewidth': 0.9,
'axes.grid': True, 'axes.grid.axis': 'y', 'axes.axisbelow': True,
'grid.color': '#f3e9ee', 'grid.linewidth': 0.8,
'axes.titlesize': 14, 'axes.titleweight': 'bold', 'axes.titlepad': 12, 'axes.titlecolor': '#4a4150',
'axes.labelsize': 11, 'axes.labelcolor': '#7a6f80',
'xtick.color': GRAY, 'ytick.color': GRAY, 'xtick.labelsize': 10, 'ytick.labelsize': 10,
'xtick.major.size': 0, 'ytick.major.size': 0,
'legend.frameon': False, 'legend.fontsize': 10, 'legend.labelcolor': '#6b6070',
'axes.prop_cycle': matplotlib.cycler(color=[MAIN, ACCENT, MAIN_D, ACCENT_D]),
})