2017-07-07 146 views
0

我的excel文件被保存为csv。它有三列,我试图在同一图上绘制第1列与第2列以及第1列与第3列。我能够将三列分成单独的变量,但出于某种原因无法绘制它。只有X轴和Y轴出现,但没有实际的图形。你知道如何绘制它吗?python从excel csv文件绘制数据

import matplotlib.pyplot as plt 
import pandas as pd 
data = pd.read_csv('file:///C:/Users/Avalanche/Documents/data/FL20data/FL20BU%2317.H-Transfer.1 cycle_data.csv', skiprows = 1) 
Htran = data.head(1201) 
colm1 = Htran.loc[: , "H-Transfer.1 cycle.Field (Oe)"] 
colm2 = Htran.loc[: , "H-Transfer.1 cycle.F1"] 
colm3 = Htran.loc[: , "H-Transfer.1 cycle.R1"] 
plt.plot([colm1], [colm2]) 
plt.plot([colm1], [colm3]) 
plt.xlim(-3500,3500) 
plt.ylim(2400,2600) 
plt.title('R vs. H') 
plt.xlabel('H (Oe)') 
plt.ylabel('Resistance') 
plt.show() 

数据:(我确信跳过我的代码中的第一行)

(1-5)R6C10 FL20BU-17 Failed: NONE Passed: skipgrade; 

H-Transfer.1 cycle.Field (Oe) H-Transfer.1 cycle.F1 H-Transfer.1 cycle.R1 

-3000.3 2487.508 2487.508 
-2994.7 2492.037 2487.508 
-2989.9 2510.315 2496.582 
-2985.1 2478.497 2505.721 
-2980.3 2478.497 2496.582 
-2974.7 2496.582 2514.925 
-2969.9 2474.016 2524.195 
-2965.2 2496.582 2482.995 
-2960.4 2501.143 2487.508 
-2954.8 2501.143 2478.497 
-2950 2501.143 2505.721 
+0

您目前的输出是什么?空白或只是不正确的图? – MattR

+0

这只是一个空白图 – nrav999

回答

0

首先,plt.plot([colm1], [colm2])是一个坏主意:你在列表中包装一个熊猫系列,然后试图绘制它,这通常不会起作用。其次,你可能只是想要一个值而不是一个熊猫系列,所以要用.values属性来获取值。

假设你有你的数据框是由数字数据组成,这应该适合你。

colm1 = Htran.loc[: , "H-Transfer.1 cycle.Field (Oe)"].values 
colm2 = Htran.loc[: , "H-Transfer.1 cycle.F1"].values 
colm3 = Htran.loc[: , "H-Transfer.1 cycle.R1"].values 
plt.plot(colm1, colm2) 
plt.plot(colm1, colm3) 

顺便说一下,我建议通过熊猫文档来查看绘图。很多有用的信息:https://pandas.pydata.org/pandas-docs/stable/visualization.html

+0

当我添加'.values'到最后,错误是“AttributeError:'numpy.ndarray'对象没有属性'查找'',并且轴的两个都从0到1。我需要在'.values'之外添加其他内容 – nrav999

+0

@ nrav999不,我不认为你应该这样做,但是这使我认为你的数据框中包含非数字数据。你可以添加前5-10行你的数据到你的问题? – lanery

+0

我将数据添加到问题 – nrav999