Как связать точки по порядку в точечной диаграмме? - PullRequest
0 голосов
/ 05 апреля 2020

Я хочу соединить некоторые точки, чтобы понять форму данных. Мой код следующий

import numpy as np 
import matplotlib.pyplot as plt 
from random import randint, uniform,random
import random
import math

FO_1_NSGA=[1737903,1775238,1745292,1753900,1739432,1765932]
FO_2_NSGA=[1250000,1212665,1235970,1224003,1242687,1216719]
plt.scatter(FO_1_NSGA,FO_2_NSGA,marker='s',c="red",linewidths=True,label="NSGA",edgecolors='blue')
plt.plot(FO_1_NSGA,FO_2_NSGA)
plt.grid()
plt.xlabel("Costo Total de Transporte (CTT)")
plt.ylabel("Costo Total por Demanda Insatisfecha (CDIT)")
plt.legend(loc=0)
plt.show()

Вывод следующий (что верно)

enter image description here

Я хочу подключить эти указывает на экспоненциальное убывающее поведение моих переменных, но когда я пытаюсь это сделать, добавив следующий код

plt.plot(FO_1_NSGA,FO_2_NSGA)

, я получаю enter image description here

, который явно не прав ... есть идеи?

1 Ответ

1 голос
/ 06 апреля 2020

Ваши наборы данных находятся не в порядке возрастания или убывания, вам необходимо убедиться, что при использовании plt.plot переменная x находится в порядке возрастания с соответствующей переменной y в соответствующих позициях. Это связано с тем, что plt.plot объединит точки в указанном порядке, поэтому необходимо указывать точки данных в порядке возрастания или убывания.

Переформатировать наборы данных в:

F0_1_NSGA = [1737903, 1739432, 1745292, 1753900, 1765932, 1775238]

F0_2_NSGA = [1212665, 1216742, 12240000 , 1250000]

Это гарантирует, что ваши plt.plot и plt.scatter будут иметь одинаковую форму графика.

Надеюсь, что это сработало:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...