Python,matplotlib.pyplot看不到线图

时间:2017-12-18 02:26:21

标签: python matplotlib

我试图使用matplotlib.pyplot包& amp;来绘制元组列表。 Spyder IDE中的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)我如何提供绘图范围,所以没有负值?

谢谢

1 个答案:

答案 0 :(得分: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循环

更快