如何以科学计数法为图表导入数据?

时间:2016-04-18 02:01:00

标签: python csv matplotlib

到目前为止,我一直在尝试使用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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

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

我建议使用pandas来处理导入。如果您正在进行科学计算,您会发现大熊猫非常有用。那你的问题就变成了:

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

大熊猫也可能有办法处理绘图!

答案 1 :(得分:0)

我认为问题来自你的标题。你的标题(第一行)是一个字符串,显然,matplotlib不能绘制这种数据。

你必须:

<Grid Background="Yellow">
<Expander Name="Expander">      
  <Grid Background="White" >
    <TextBox  Background="LightGreen" Width="150" Height="30"/>
  </Grid>
</Expander>
<TextBox Name="AzureBox" Margin="0,20,0,0"  Background="Azure" Width="150" Height="30">
  <TextBox.Style>
    <Style>
      <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=Expander, Path=IsExpanded}" Value="True">
          <Setter Property="TextBox.Visibility" Value="Collapsed"></Setter>
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </TextBox.Style>
</TextBox>

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