【问题标题】:How to connect dots in order in a scatter plot?如何在散点图中按顺序连接点?
【发布时间】:2020-04-05 20:56:01
【问题描述】:

我想连接一些点来了解数据的形状。我的代码如下

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()

输出如下(没错)

我想连接这些点以查看我的变量的指数下降行为,但是当我尝试这样做时添加以下代码

plt.plot(FO_1_NSGA,FO_2_NSGA)

我明白了

这显然是不对的……有什么想法吗?

【问题讨论】:

    标签: python scatter-plot line-plot


    【解决方案1】:

    您的数据集不是按升序或降序排列的,您需要确保在使用 plt.plot 时,x 变量按升序排列,相应的 y 变量位于相应位置。这是因为 plt.plot 将按照给定的顺序连接点,因此必须按升序或降序提供数据点。

    将数据集重新格式化为:

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

    F0_2_NSGA = [1212665, 1216719, 1224003, 1235970, 1242687, 1250000]

    这将确保您的 plt.plot 和 plt.scatter 具有相同的图形形状。

    希望有效:)

    【讨论】:

    • 谢谢。我该怎么做?
    • 重新格式化数据集:f0_1_nsga = [1737903,1745292,1753900,1765932,175238] F0_2_NSGA = [1212665,1216719,1224003,1235970,1242687,1250000]这将确保您的PLT .plot 和 plt.scatter 具有相同的图形形状。
    • 有没有办法进行编码?
    • 就是这样,您只需重新排列每个数据集中的值的顺序,我已经为您完成了(我编辑了我的答案)。只需复制我拥有的行并将其替换为您拥有的行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2017-01-31
    • 2021-10-09
    相关资源
    最近更新 更多