我的excel文件保存为csv。它有三列,我试图在同一个图上绘制第1列对第2列和第1列对第3列。我能够将三列分成单独的变量,但由于某种原因无法绘制它。仅显示X和Y轴,但没有实际图形。你知道如何策划吗?
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()
DATA :(我确保跳过代码中的第一行)
(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 :(得分:0)
首先,plt.plot([colm1], [colm2])
是一个坏主意:你将一个熊猫系列包装在一个列表中,然后尝试绘制它,这通常是行不通的。其次,你可能只想要一个值数组而不是一个pandas系列,所以要点击.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)
顺便说一句,我建议在绘图中查看pandas文档。大量有用的信息:https://pandas.pydata.org/pandas-docs/stable/visualization.html