You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需重复编码即可对比同一图表的两个微调版本?

避免重复代码实现同一图表的不同版本对比

问题场景

你希望对比同一图表的两个微调版本(比如不同起始角度的饼图),但不想重复编写几乎完全一致的绘图代码。当前的实现方式存在明显冗余:

values = [1,2,3]
labels = ['test1','test2','test3']

plt.figure()
plt.pie(values,labels=labels,startangle= 15)
plt.figure()
plt.pie(values,labels=labels,startangle= 90)
plt.show()

可行解决方案

1. 遍历参数循环生成图表

把需要调整的参数(比如startangle)整理成列表,通过循环复用同一套绘图逻辑:

import matplotlib.pyplot as plt

values = [1,2,3]
labels = ['test1','test2','test3']
# 把需要测试的起始角度放在列表里
start_angles = [15, 90]

for angle in start_angles:
    plt.figure()
    plt.pie(values, labels=labels, startangle=angle)
plt.show()

2. 封装绘图逻辑为函数

将重复的绘图代码封装成函数,后续只需要传入不同参数即可生成对应图表,扩展性更强:

import matplotlib.pyplot as plt

def draw_pie(values, labels, start_angle):
    plt.figure()
    plt.pie(values, labels=labels, startangle=start_angle)

values = [1,2,3]
labels = ['test1','test2','test3']

# 调用函数生成不同版本的图表
draw_pie(values, labels, 15)
draw_pie(values, labels, 90)
plt.show()

3. 绘制在同画布的子图中(更便于对比)

如果想把两个图表放在同一张图里直接对比,用子图布局更直观,同样无需重复编写核心绘图代码:

import matplotlib.pyplot as plt

values = [1,2,3]
labels = ['test1','test2','test3']
start_angles = [15, 90]

# 创建1行2列的子图布局
fig, axes = plt.subplots(1, 2, figsize=(10, 5))

# 遍历子图和参数,批量绘图
for ax, angle in zip(axes, start_angles):
    ax.pie(values, labels=labels, startangle=angle)
    ax.set_title(f"起始角度: {angle}")

plt.tight_layout()
plt.show()

内容的提问来源于stack exchange,提问作者Rodrigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 08:46:04