Построить большой набор данных со временем - PullRequest
0 голосов
/ 09 октября 2018

У меня есть набор данных с более чем 100k записей, как показано ниже:

    score       time
0     19     18 days 02:55:00
1     2949   1 day 01:20:11
2     42211  5 days 00:00:00
     ....
100000 22    100 days 01:11:03

Я пытаюсь нанести время на ось x и счет на оси y, как показано ниже:

import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt

k = pd.cut(df.score, bins)
plt.plot(time, score)
plt.show()

Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь нанести оценки по бинам со временем по оси X, но так много графиков не умещается на одном графике.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 09 октября 2018

Вы пробовали смотреть на следующее? Гистограмма в Matplotlib, время по оси X

Как указано в приведенной выше ссылке:

Matplotlib использует свой собственный формат для дат / времени, но также предоставляет простые функции дляконвертировать, которые представлены в модуле даты.Он также предоставляет различные локаторы и форматеры, которые занимаются размещением галочек на оси и форматированием соответствующих меток.При условии, что вы передадите свои соответствующие ячейки даты / времени, мы можем соответствующим образом изобразить это и обозначить на оси X.

Это должно помочь вам начать:

import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# generate some random data (approximately over 5 years)
data = [float(random.randint(1271517521, 1429197513)) for _ in range(1000)]

# convert the epoch format to matplotlib date format 
mpl_data = mdates.epoch2num(data)

# plot it
fig, ax = plt.subplots(1,1)
ax.hist(mpl_data, bins=50, color='lightblue')
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))
plt.show()

Результат:

Python Hist Example

...