【问题标题】:Generating Plots from .csv file从 .csv 文件生成图
【发布时间】:2016-10-13 23:49:06
【问题描述】:

我正在尝试从 NASA 的系外行星档案中绘制几张系外行星数据图。问题是我所做的任何事情都不会返回 csv 文件的列,其标题位于 csv 文件的第一行。

我得到的错误是

    NameError: name 'pl_orbper' is not defined

The DATA I need to use.

虽然我确定我已经接近了,但我目前的代码还没有工作。

   import matplotlib.pyplot as plt
   import numpy as np

   data = np.genfromtxt("planets.csv",delimiter=',',names=True, unpack=True)

   plt.plot(pl_orbper,pl_bmassj)
   plt.title('Mass vs Period')
   plt.ylabel('Period')
   plt.xlabel('Mass')

   plt.show() 

如果有人对 csv.reader 或任何其他读取 csv 文件的方法有更好的解决方案,我会接受它。

【问题讨论】:

  • "...没用..." 请解释什么没用。你收到错误了吗?如果是这样,请包含完整的错误消息。代码是否运行了,但没有给您预期的结果?如果是这样,请说明您得到了什么以及您的预期。
  • 让我猜猜,你在抢NameError: name pl_orbper is not defined yet
  • 是的!我无法让列以标题命名。我希望能够用标题名称绘制图表。
  • @RexYeigh 好吧,您需要为这些变量/名称分配一些值,否则您希望如何使用它们?
  • @juanpa.arrivillaga “分配一些价值”是什么意思?

标签: python csv matplotlib


【解决方案1】:

更改以下行:

plt.plot(pl_orbper,pl_bmassj)

plt.plot(data['pl_orbper'],data['pl_bmassj'])

有以下数据:

rowid,pl_orbper,pl_bmassj
1, 326.03, 0.320
2, 327.03, 0.420
3, 328.03, 0.520
4, 329.03, 0.620
5, 330.03, 0.720
6, 331.03, 0.820

这是结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多