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

Python优化结果绘图:如何消除曲线首尾的异常直线?

问题解决方案:Matplotlib异常曲线修复与多维优化可视化方案

一、消除首尾连接的异常直线

问题原因

你提取的子集数据中,some_var_3的取值未按顺序排列,matplotlib的plot函数会严格遵循DataFrame中数据的原始顺序连接点,当首尾的some_var_3数值差距较大时,就会出现跨图的异常直线。

解决方法

筛选数据后,对结果按some_var_3进行排序,确保x轴数据按逻辑顺序排列,再执行绘图操作:

# 筛选目标数据并按some_var_3排序
filtered_df = df.loc[(df['some_var_1'] == 24) & (df['some_var_2'] == 0.001)].sort_values(by='some_var_3')
# 基于排序后的数据绘图
ax1.plot(filtered_df['some_var_3'], filtered_df['output'])

二、多维优化问题的其他可视化方案

  • 平行坐标图:适合展示多变量与输出的关联,每个变量对应一条垂直轴,每个样本用折线连接各轴上的取值,可直观对比不同样本的变量组合与输出关系。示例代码:
    import pandas as pd
    from pandas.plotting import parallel_coordinates
    # 选择需要展示的变量和输出列
    target_cols = ['some_var_1', 'some_var_2', 'some_var_3', 'some_var_4', 'output']
    parallel_coordinates(df[target_cols], 'output', colormap='inferno')
    
  • 散点矩阵(Pair Plot):展示所有变量两两之间的散点关系,对角线上显示单变量分布,可快速观察变量间的相关性、分布规律。示例代码:
    import seaborn as sns
    sns.pairplot(df, vars=['some_var_1', 'some_var_2', 'some_var_3', 'some_var_4'], hue='output')
    
  • 三维散点/曲面图:固定两个变量后,用三维空间展示剩余两个变量与输出的关系,适合呈现三维维度下的变化趋势。示例代码:
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    ax.scatter(df['some_var_2'], df['some_var_3'], df['output'])
    
  • 热力图:计算设计变量与输出的相关性系数,用颜色深浅展示相关性强弱,可快速定位对输出影响最大的变量。示例代码:
    import seaborn as sns
    corr_matrix = df[['some_var_1', 'some_var_2', 'some_var_3', 'some_var_4', 'output']].corr()
    sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
    
  • 小提琴图/箱线图:固定其他变量后,展示单个设计变量不同取值下输出的分布情况,直观观察变量对输出离散程度的影响。示例代码:
    import seaborn as sns
    sns.violinplot(x='some_var_1', y='output', data=df)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:45:08