Python 如何绘制列表的元素?

Python 如何绘制列表的元素?,python,list,plot,Python,List,Plot,我已经将雅虎的数据导入到一个列表中,这样每个列表都有每天的所有数据。我想使用列表的第一个条目(日期条目)作为横坐标。我看过很多例子,也看过很多我不熟悉的词典。我想是这样的: chart.plot(数据[:][0],数据[:][1]) 会有用,但不会。显然,data[:][0]只会给出第一个列表,而不是每个列表的第一个元素。我知道,我可以制作两个包含所有日期的新列表,并用for循环表示股票价格,但这似乎是错误的。要获取列表中每个列表的nth元素,可以使用列表理解: #nth_elements =

我已经将雅虎的数据导入到一个列表中,这样每个列表都有每天的所有数据。我想使用列表的第一个条目(日期条目)作为横坐标。我看过很多例子,也看过很多我不熟悉的词典。我想是这样的:

chart.plot(数据[:][0],数据[:][1])


会有用,但不会。显然,
data[:][0]
只会给出第一个列表,而不是每个列表的第一个元素。我知道,我可以制作两个包含所有日期的新列表,并用for循环表示股票价格,但这似乎是错误的。

要获取列表中每个列表的
n
th元素,可以使用列表理解:

#nth_elements = [l[n] for l in data]
#for example:
x_list = [l[0] for l in data]
y_list = [l[1] for l in data]
现在您可以调用
chart.plot(x\u列表,y\u列表)


如果您不喜欢“额外”变量,可以在函数调用中直接使用列表理解:

chart.plot([l[0] for l in data], [l[1] for l in data])

但是,一个简单for循环在一个循环中执行相同的操作,因此无需在
数据上循环两次:

x_list = []
y_list = []
for l in data:
    x_list.append(l[0])
    y_list.append(l[1])

即使它不是pythonic,它仍然有效并且是原创的。它应该一点也不觉得“不对”。

你对此感兴趣吗

li = [["GLD","SPDR Gold Trust",
       '161.57','161.47','162.02','161.20','0.00','N/A'],

      ["SLV","iShares Silver Trust",
       '30.29','30.65','25.34','36.44','0.00','N/A'],

      ["GDX","Market Vectors Gold Miners ETF",
       '42.31','42.77','39.08','57.91','0.00','N/A']]

from itertools import izip

for el in zip(*li):
    print el
显示

('GLD', 'SLV', 'GDX')
('SPDR Gold Trust', 'iShares Silver Trust', 'Market Vectors Gold Miners ETF')
('161.57', '30.29', '42.31')
('161.47', '30.65', '42.77')
('162.02', '25.34', '39.08')
('161.20', '36.44', '57.91')
('0.00', '0.00', '0.00')
('N/A', 'N/A', 'N/A')

data[:]
仅获取列表中
data
的所有元素。这与执行
数据[1:4]
相同,它获取从1开始到4结束的元素:
[1,2,3]

要对列表中的每个元素执行操作,需要使用
for
循环

list1, list2 = [], []
for list in data:
    list1.append(list[0])
    list2.append(list[1])

你是如何获得这些数据的,你能发布URL吗,或者你在使用什么?但这并不重要。基本上,我想知道我是否有一个列表,其中每个列表都是[x,y],并且想要绘制值。我可以不制作两个新的列表,只包含x值和y值。你应该编辑问题的标签,包括你正在使用的语言(我假设是Python)和库(matplotlib、pandas等等)这是一个以“,”分隔行的文件。这很容易与任何脚本语言(如python)分离,也许你应该重写一个问题,用特定的语言询问帮助,并将此请求放入问题中,解释结果的格式。对不起,我假设这个站点都是python。我将文件导入数组或执行任何我需要做的分析都没有困难,只是当我去绘制结果时,由于我上面提到的原因,我不能。现在所有数据都组织在两列中,我必须返回并将其全部重做成两行才能使其正常工作。@Jon Clements代码中有一个错误,对于izip(*li)中的el,应该是
。izip不会在一个对象中构建所有数据,它会创建一个迭代器。-但我的答案很愚蠢,我认为Markus Meskanen的答案是正确的,我会删除我的答案