Skip to content
Advertisement

Plotting values above a threshold in Python

Having issues with plotting values above a set threshold using a pandas dataframe.

I have a dataframe that has 21453 rows and 20 columns, and one of the columns is just 1 and 0 values. I’m trying to plot this column using the following code:

lst1 = []
for x in range(0, len(df)): 
    if(df_smooth['Active'][x] == 1):
        lst1.append(df_smooth['Time'][x])
        
plt.plot(df_smooth['Time'], df_smooth['CH1'])
plt.plot(df_smooth['Time'], lst1)

But get the following errors:

x and y must have same first dimension, but have shapes (21453,) and (9,)

Any suggestions on how to fix this?

Advertisement

Answer

The error is probably the result of this line plt.plot(df_smooth['Time'], lst1). While lst1 is a subset of df_smooth[Time], df_smooth['Time'] is the full series.

The solution I would do is to also build a filtered x version for example –

lst_X = []
lst_Y = []
for x in range(0, len(df)): 
    if(df_smooth['Active'][x] == 1):
        lst_X.append(df_smooth['Time'][x])
        lst_Y.append(df_smooth['Time'][x])

Another option is to build a sub-dataframe –

sub_df = df_smooth[df_smooth['Active']==1]
plt.plot(sub_df['Time'], sub_df['Time'])

(assuming the correct column as Y column is Time, otherwise just replace it with the correct column)

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement