我试图使用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()
这是我的输出:
我看不到线条图。图是空的?
1)我如何正确地绘制
2)我如何提供绘图范围,所以没有负值?
谢谢
答案 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循环
更快