Нарисуйте меньше точек (линейный график) для библиотеки matplot

В настоящее время у меня есть сюжет со слишком большим количеством точек, я хочу избежать перекрытия. Хотите знать, как уменьшить количество точек, чтобы линия была более гладкой.

Код участка

fig = plt.figure(1, figsize = (18,10)) # Figure size in inches (size_x, size_y)
ax = plt.axes()
min_val = prediction_intervals2[:, 0]
max_val = prediction_intervals2[:, 1]
true_values = y_test
predicted_values = PLS_Model1.predict(X_test)
plt.plot(min_val, label = "Min", color='blue')
plt.plot(max_val, label = "Max", color='red')
plt.plot(true_values, label = "y", color = "black")
plt.plot(predicted_values, label = "y\u0302", marker='o')
plt.title('Conformal Predictor Final Predictions')
plt.legend()
plt.show()

Текущий сюжет

введите здесь описание изображения

Желаемый сюжет

Сюжет, который я хочу

введите здесь описание изображения


person bioinformatics_student    schedule 06.08.2020    source источник
comment
используйте срез numpy для построения каждой, скажем, 5-й точки. Например: plt.plot(true_values[::5], ...)   -  person tmdavison    schedule 06.08.2020


Ответы (1)


Я смог правильно пересмотреть свой код и пришел к желаемому результату, просто выбрав меньше точек данных, что довольно просто. На всякий случай написал ответ.

min_val_normal = plot_normalized_table[['Min']]
max_val_normal = plot_normalized_table[['Max']]
original_normal = plot_normalized_table[['Original Label']]
interval_normal = plot_normalized_table[['Interval Size']]
normal_predicted = predicted_values[0:50]
fig = plt.figure(1, figsize = (18,10)) # Figure size in inches (size_x, size_y)
ax = plt.axes()
#predicted_values = PLS_Model1.predict(X_test) #Predictions from test data (run at least once for the plot to work)
plt.plot(min_val_normal, label = "Min", color='blue')
plt.plot(max_val_normal, label = "Max", color='red')
plt.plot(original_normal, label = "y", color = "black")
plt.plot(normal_predicted, label = "y\u0302", marker='o', )
plt.title('Normalized Final Conformal Predictions')
plt.xlim([-1, 51])
plt.ylim([-1, 2])
plt.legend()
plt.show()

введите здесь описание изображения

person bioinformatics_student    schedule 06.08.2020