【问题标题】:python plotting data from excel csv filepython从excel csv文件中绘制数据
【发布时间】:2017-12-12 00:53:29
【问题描述】:

我的 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()

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

(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

【问题讨论】:

  • 您当前的输出是多少?空白还是不是正确的图表?
  • 只是一张空白图

标签: python excel csv plot


【解决方案1】:

首先,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

【讨论】:

  • 当我将'.values'添加到末尾时,错误是“AttributeError:'numpy.ndarray'对象没有属性'find''并且两个轴都从0到1。做除了“.values”之外,我还需要添加其他内容
  • @nrav999 不,我认为您不必这样做,但这让我认为您的数据框中有非数字数据。您能否将前 5-10 行数据添加到您的问题中?
  • 我将数据添加到问题中
  • 嗯,对我来说看起来像是数字数据,但也许其他地方隐藏了非数字数据。可以肯定的是,您可以使用pd.to_numeric() 转换系列,如this answer 所示。
猜你喜欢
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 2012-11-12
  • 2020-10-17
  • 2020-06-21
相关资源
最近更新 更多