Python,matplotlib.pyplot看不到线图

问题描述 投票:1回答:1

我试图在Spyder IDE中使用matplotlib.pyplot包和Python 3绘制元组列表。以下是我的代码的相关片段:

import matplotlib.pyplot as plt

def plot_test(item):
    xdata = []
    ydata = []
    for item in list_of_epoch_total_time_tuples:
        xdata = item[0]
        ydata = item[3]

    plt.plot(xdata,ydata)
    plt.ylabel('epoch_counter')
    plt.xlabel('square_error')
    plt.show()

这是我的输出:

enter image description here

我看不到线条图。图是空的?

1)我怎样才能正确地画出来

2)我如何提供绘图范围,所以没有负值?

谢谢

python matplotlib
1个回答
1
投票

首先,你的屏幕抓取的代码有plt.plot(xdata,item[3:]),而你添加到问题的代码是plt.plot(xdata,ydata),我认为是你想要的。问题是你在每次迭代时都覆盖了xdata和ydata,所以它只是单项值。而是使用:

for item in list_of_epoch_total_time_tuples:
   xdata.append(item[0])
   ydata.append(item[1])

这会将值添加到列表的末尾,而不是覆盖变量的数据。你还有item作为plot_test()的参数,但它似乎没有在任何地方使用,你也使用名称项作为你的for循环参数。您应该避免在这样的两个地方使用相同的名称,因为它可能会令人困惑。

要更改范围,您可以使用:

plt.xlim(xmin=some_min, xmax=some_max)

要么

plt.xlim(xmin=some_min)

如果你只想改变最小值。你可以为ylim做一个类似的命令。

如果您有数据集,您可能还需要考虑使用numpy。使用numpy数组通常比使用list和for循环更快

© www.soinside.com 2019 - 2024. All rights reserved.