我是使用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
答案 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()
请注意,这会将您的日期视为整数(与数据文件中的日期相同)。