【问题标题】:How do I import data in scientific notation for a plot?如何以科学计数法为绘图导入数据?
【发布时间】:2016-04-18 02:01:00
【问题描述】:

到目前为止,我一直在尝试使用 python 将格式不正确的科学记数法数据导入绘图。我已经尝试过

import matplotlib.pyplot as plt
import numpy as np

data = np.genfromtxt("/home/rex/Documents/ModLab/PhotoElec/Exp2Data.csv",delimiter=',', unpack=True, names=True)

plt.axis([-1,32, 0 , 203])

plt.title('All Aperture')
plt.xlabel('Voltage')
plt.ylabel('Current')
plt.plot(data, 'ro')

plt.show()

数据在 csv 文件中,看起来像这样,但要长得多。

I2,V2,I2,V2,I2,V2
0,-0.5,0,-1,0,-0.9
2.00E-011,0.5,1.00E-010,0,3.50E-010,0.1
5.00E-011,1.5,3.00E-010,1,1.55E-009,1.1

另外,当我运行分配数据文件时,我得到了这个奇怪的错误。

SyntaxError: EOL while scanning string literal

任何帮助将不胜感激。

【问题讨论】:

    标签: python csv matplotlib


    【解决方案1】:

    我认为您的问题出在实际导入中 - 它可能已作为字符串而不是数字导入。

    我建议使用 pandas 来处理导入。如果你在做科学计算,你会发现 pandas 非常有用。你的问题就变成了:

    import pandas
    data = pandas.read_csv('Exp2Data.csv')
    i2 = data.I2
    v2 = data.V2
    # ... plot as needed
    

    pandas 也可能有办法处理绘图!

    【讨论】:

      【解决方案2】:

      我认为问题出在您的标题上。您的标题(第一行)是一个字符串,显然,matplotlib 无法绘制这种数据。

      你必须做:

      data = np.genfromtxt("/home/rex/Documents/ModLab/PhotoElec/Exp2Data.csv",
                           delimiter=',', 
                           unpack=True, 
                           names=True, 
                           skip_header = 1)
      # skip_header let to go directly to your data and pass the header
      

      我没有运行脚本,但它应该可以工作;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-09
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        相关资源
        最近更新 更多