CSV文件中的日期,如何绘制它

时间:2019-10-28 15:09:09

标签: python csv dataframe graphics

我是使用python的新手。
我正在尝试在csv文件中的Y1和Y2(第二个y轴)中绘制2个变量,并在x轴中绘制日期。

我认为我的主要问题是在csv中转换日期。

此外,还可以根据ID(A,B,C)保存3个图形...非常感谢。

我添加了我拥有的CSV文件和正在寻找的人物图像。

非常感谢您的建议

ID  date    Y1  Y2 
A   40480   136 83
A   41234   173 23
A   41395   180 29
A   41458   124 60
A   41861   158 27
A   42441   152 26
A   43009   155 51
A   43198   154 38
B   40409   185 71
B   40612   156 36
B   40628   165 39
B   40989   139 77
B   41346   138 20
B   41558   132 85
B   41872   157 58
B   41992   120 91
B   42245   139 43
B   42397   131 34
B   42745   114 68
C   40711   110 68
C   40837   156 38
C   40946   110 63
C   41186   161 46
C   41243   187 20
C   41494   122 55
C   41970   103 19
C   42183   148 78
C   42247   115 33
C   42435   132 92
C   42720   187 43
C   43228   127 28
C   43426   183 45

graph expected

2 个答案:

答案 0 :(得分:1)

尝试matplotlib库,如果我理解正确,它应该可以工作。

from mpl_toolkits import mplot3d
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()

ax = plt.axes(projection='3d')

三维线的数据

zaxis = y1
xaxis = date
yaxis = y2
ax.plot3D(xaxis, yaxis, zaxis, 'red')

三维散点数据

zdat = y1
xdat = date
ydat = y2
ax.scatter3D(xdat, ydat, zdat, c=xdat, cmap='Greens')

答案 1 :(得分:1)

如果我对您的理解正确,那么您正在寻找ID = A,ID = B,ID = C的三个独立图形。这是您如何获得的:

import pandas as pd
import pylab as plt

data = pd.read_csv('data.dat', sep='\t')  # read your datafile, you might have a different name here

for i, (label, subset) in enumerate(data.groupby('ID')):
    plt.subplot(131+i)
    plt.plot(subset['date'], subset['Y1'])
    plt.plot(subset['date'], subset['Y2'], 'o')
    plt.title('ID: {}'.format(label))
plt.show()

请注意,这会将您的日期视为整数(与数据文件中的日期相同)。