Python,matplotlib.pyplot看不到线图
我试图在Spyder IDE中使用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]
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)