даты из CSV-файлов, как я могу это график - PullRequest
1 голос
/ 28 октября 2019

Я новичок в использовании python.
Я пытаюсь отобразить 2 переменные в Y1 и Y2 (вторичная ось y) и дату на оси x из файла CSV.

Я думаю, что моя главная проблема с преобразованием даты в CSV.

Более того, возможно ли сохранить 3 графика в соответствии с идентификатором (A, B, C) ... Большое спасибо.

Я добавил имеющийся файл 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 голосов
/ 28 октября 2019

Если я правильно вас понимаю, вы ищете три отдельных графика для 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()

Обратите внимание, что ваши даты обрабатываются как целые числа (как в файле данных).

0 голосов
/ 28 октября 2019

Попробуйте библиотеку 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...