跳转到内容

高级绘图:多子图与样式控制

单张图表往往不够——你需要把多个指标放在同一张图里对比,或者用多个子图展示不同维度的信息。

多子图

python
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    'model': ['GPT-4o']*5 + ['Claude']*5,
    'latency': np.concatenate([np.random.normal(800, 150, 5),
                               np.random.normal(650, 120, 5)]),
})

fig, axes = plt.subplots(1, 2, figsize=(12, 4))

df[df['model']=='GPT-4o']['latency'].plot(kind='hist', ax=axes[0],
                                          title='GPT-4o 延迟', alpha=0.7)
df[df['model']=='Claude']['latency'].plot(kind='hist', ax=axes[1],
                                           title='Claude 延迟', alpha=0.7)

plt.tight_layout()

plt.subplots(行数, 列数) 创建一个多子图画布,每个子图是一个 axes 对象。通过 ax= 参数把 Pandas 的 plot 输出定向到指定的子图中。这在"并排对比两个模型的延迟分布"这类场景中非常实用。

散点图与颜色映射

python
df = pd.DataFrame({
    'quality': np.random.uniform(1, 5, 100),
    'tokens': np.random.randint(20, 2000, 100),
    'source': np.random.choice(['api', 'web'], 100),
})

df.plot.scatter(x='tokens', y='quality', c='source',
                cmap='viridis', alpha=0.6, figsize=(8, 5))

散点图的 c 参数可以按某列的值着色——比如按 source(api/web)区分不同颜色的点,一眼就能看出不同来源的数据在"质量-长度"二维空间中的分布差异。

基于 MIT 许可发布