值错误:x和y的大小必须相同

2024-05-05 18:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想画一个散点图 它工作得非常好,直到我添加了我想要的百分比高于25%的条件

如果我使用

try: pd_a = setting_df['PERCENT'].values
    except: pd_a = None

但是,当我按照下面的方式更改代码时,我收到一条错误消息,提示x和y的大小必须相同 有人能告诉我是什么原因导致了这个错误吗? 我理解弹出的错误消息,因为x和y的长度不同,但我不确定如何更正它

try: pd_a = setting_df['PERCENT'].values if setting_df['PERCENT'].values >= 25 else None
    except: pd_a = None

这是我得到的详细代码

 def scaling(y, convert_axis, origin_axis):
        var1 = (y - origin_axis[0]) * (convert_axis[1] - convert_axis[0])
        var2 = (origin_axis[1] - origin_axis[0])
        var3 = convert_axis[0]
        var = (var1/var2) + var3
        return var
        
    def setting_data(setting_df, _oil):
        try: pd_a = setting_df['PERCENT'].values if setting_df['PERCENT'].values >= 25 else None
        except: pd_a = None
        try: pd_b = setting_df['RPM'].values
        except: pd_b = None
        try: pd_c = setting_df['pressure'].values
        except: pd_c = None
        try: pd_d = setting_df['temeperature'].values
        except: pd_d = None
        try: pd_e = setting_df['Engine Inlet Temp'].values
        except: pd_e = None
           
         sensor_dic = {
                'load': pd_a,
                'rpm': pd_b,
                'Max': pd_c,
                'Comp': pd_d,
                'Scav': pd_e
                }
            return sensor_dic
        
            
if sensor_dic['rpm'] is not None:
   ax1.scatter(x=sensor_dic['load'],
               y=scaling(sensor_dic['rpm'], [ax_engspd[0], ax_engspd[-1]], range_list[0]),                              s=15, c='#8B4513')

1条回答
网友
1楼 · 发布于 2024-05-05 18:25:05

如果只想打印PERCENT列具有值的数据>;=25您可以制作一个掩码m,然后使用^{}根据掩码选择数据:

def setting_data(setting_df, _oil):
    m = setting_df['PERCENT'] >= 25
    try: pd_a = setting_df.loc[m, 'PERCENT']
    except: pd_a = None
    try: pd_b = setting_df.loc[m, 'RPM'].values
    except: pd_b = None
    # etc.

相关问题 更多 >