def parallel_coordinates_plot(df: pd.DataFrame, class_column_name, order=None):
plot_df = df.copy()
plot_df.insert(0, 'par_plot_idx', list(range(df.shape[0])))
var_names = df.columns.tolist()
var_names.remove(class_column_name)
plot_df = plot_df.melt(
id_vars=[class_column_name, 'par_plot_idx'],
value_vars= var_names
)
p = ggplot(plot_df, aes(x='variable', y='value', color=class_column_name, group='par_plot_idx')) \
+ geom_line(size=1)
if order is not None:
p += scale_x_discrete(breaks=order)
return p