数周以来,我一直在尝试从 .CSV 文件在同一个图上绘制 3 组 (x, y) 数据,但我一无所获。我的数据最初是一个 Excel 文件,我已将其转换为 .CSV 文件,并pandas
根据以下代码将其读入 IPython:
from pandas import DataFrame, read_csv
import pandas as pd
# define data location
df = read_csv(Location)
df[['LimMag1.3', 'ExpTime1.3', 'LimMag2.0', 'ExpTime2.0', 'LimMag2.5','ExpTime2.5']][:7]
我的数据格式如下:
Type mag1 time1 mag2 time2 mag3 time3
M0 8.87 41.11 8.41 41.11 8.16 65.78;
...
M6 13.95 4392.03 14.41 10395.13 14.66 25988.32
我试图在同一个图上绘制time1
vs mag1
、time2
vsmag2
和time3
vs mag3
,但是我得到了time..
vs的图Type
,例如。对于代码:
df['ExpTime1.3'].plot()
当我想要的是vs ,带有 x-labels -时,我将'ExpTime1.3'
(y-axis) 绘制M0
到(x-axis) 上。M6
'ExpTime1.3'
'LimMag1.3'
M0
M6
如何在同一个图上获得所有 3 组数据的
'ExpTime..'
vs'LimMag..'
图?如何获取值的 x 轴上的
M0
-M6
标签'LimMag..'
(也在 x 轴上)?
ExpTime
由于尝试了askewchanLimMag
的解决方案,由于未知原因没有返回任何图,我发现df['ExpTime1.3'].plot(),
如果我将数据帧索引(df.index)更改为 x 轴的值(LimMag1.3 )。但是,这似乎意味着我必须通过手动输入所需 x 轴的所有值使其成为数据索引来将每个所需的 x 轴转换为数据帧索引。我有非常多的数据,而且这种方法太慢了,我一次只能绘制一组数据,当我需要在一个图表上为每个数据集绘制所有 3 个系列时。有没有办法解决这个问题?或者有人可以提供一个理由和解决方案,为什么 II 用 askewchan 提供的解决方案没有任何情节?\
针对nordev,我再次尝试了第一个版本,但没有产生任何情节,甚至没有一个空图。每次我输入一个ax.plot
命令时,我都会得到一个类型的输出:
[<matplotlib.lines.Line2D at 0xb5187b8>]
但是当我输入命令时plt.show()
没有任何反应。当我plt.show()
在 askewchan 的第二个解决方案中循环后进入时,我收到一条错误消息AttributeError: 'function' object has no attribute 'show'
我对我的原始代码做了更多的摆弄,现在可以通过使索引与 x 轴 (LimMag1.3) 相同来获得与代码的ExpTime1.3
对比图,但我无法获得其他两组同一地块上的数据。如果您有任何进一步的建议,我将不胜感激。我在 Windows 7(64 位)上通过 Anaconda 1.5.0(64 位)和 spyder 使用 ipython 0.11.0,python 版本是 2.7.4。LimMag1.3
df['ExpTime1.3'][:7].plot()