使用Python进行基本CSV x-y绘图

时间:2015-10-21 16:50:36

标签: python csv plot

尝试编写一个读取csv文件并打印x-y图的python脚本。我有一个csv文件,其中包含一些行和列的数据。我想为第一列和第二列绘制x-y图。这是我到目前为止所得到的......

import csv
def getColumn(filename, column):
    results = csv.reader(open(filename), delimiter="\t")
    return [result[column] for result in results]

x = getColumn("TableOne.csv",0)
y = getColumn("TableOne.csv",1)

plt.figure("X-Y Plot")
plt.xlabel("Site")
plt.ylabel("Average")
plt.plot(x,y)

...但它是按行读取我的csv文件,而不是列,它输出一堆混合数据而不是我想要的一个特定数据。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

查看zip函数以及有关zip splats的一些答案。

您可以通过以下方式轻松完成此操作:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "category": "catname"
              }
            }
          ]
        }
      }
    }
  },
  "post_filter": {
    "bool": {
      "must": [
        {
          "terms": {  "type": [ "foo1", "foo2" ] }
        },
        {
          "range": {  "price": { "gte": 300, "lte": 600  } }
        }
      ]
    }
  }
}

此处,In [1]: data = [['x1', 'y1'], ['x2', 'y2'], ['x3', 'y3']] In [2]: zip(*data) Out[2]: [('x1', 'x2', 'x3'), ('y1', 'y2', 'y3')] *data解包为3个data对列表。然后[x, y]通过将每个列表的第一个元素分成一个组,将每个列表的第二个元素分成另一个组,将这些组合在一起,依此类推。由于每个列表只有2个元素,zip将分别返回两个组,即x和y元素。

在您的情况下,请更改

zip(*data)