Python,matplotlib.pyplot看不到线图

Python,matplotlib.pyplot看不到线图,python,matplotlib,Python,Matplotlib,我试图在Spyder IDE中使用matplotlib.pyplotpackage&python3绘制元组列表。下面是我的代码的相关片段: 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]

我试图在Spyder IDE中使用
matplotlib.pyplot
package&python3绘制元组列表。下面是我的代码的相关片段:

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()
以下是我的输出:

我看不到直线图。图表是空的吗

1) 我怎样才能画好这个

2) 如何提供绘图范围,以便不存在负值


谢谢

首先,您屏幕抓取的代码具有
plt.plot(扩展数据,项[3:])
,而您添加到问题中的代码是
plt.plot(扩展数据,ydata)
,我假设这就是您想要的。问题是每次迭代都会覆盖扩展数据和ydata,所以它只是单个项的值。而是使用:

for item in list_of_epoch_total_time_tuples:
   xdata.append(item[0])
   ydata.append(item[1])
这将把值添加到列表的末尾,而不是覆盖变量的数据。此外,您还将item用作plot_test()的参数,但它似乎不在任何地方使用,并且您还将name item用作for循环参数。您应该避免在这样的两个地方使用相同的名称,因为这可能会造成混淆

要更改可使用的范围,请执行以下操作:

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

如果您只想更改最小值,您可以对ylim执行类似的命令

如果您有一个数据集,您可能还需要研究使用numpy。使用numpy数组通常比使用列表和for循环更快

plt.xlim(xmin=some_min)