Даты показаны на графике по оси х - PullRequest
0 голосов
/ 15 ноября 2018

Я работаю с достаточно большим набором данных. Это файл, который имеет 8 столбцов (y1-y8) с числовыми данными (например, 21,3456) и 1 столбец (x) с датой данных (format: m/d/Y).

Я хочу сравнить 8 столбцов с течением времени, и для этого лучше всего подойдет график.

Это мой код:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.cbook as cbook
import matplotlib.dates as mdates
import datetime
from matplotlib.dates import DateFormatter

%matplotlib inline

df = pd.read_excel('Masterfile_allSTW.xlsx', 'Sheet1')

#data
#df.TS_TIMESTAMP = df.TS_TIMESTAMP.astype(str)
x = df['dates']
y1 = df['Rtemp_EG']
y2 = df['Rtemp_EG+1.OG']
y3 = df['Rtemp_1.OG']
y4 = df['Rtemp_2.OG']
y5 = df['Rtemp_3.OG']
y6 = df['Rtemp_4.OG']
y7 = df['Rtemp_5.OG']
y8 = df['Rtemp_6.OG']

#plot data
fig, ax = plt.subplots(figsize=(15,7))
df.plot(ax=ax)

#set ticks every week
ax.xaxis.set_major_locator(mdates.DayLocator())
#set major ticks format
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m %d'))

При запуске скрипта сюжет выглядит так:

enter image description here

Я вполне удовлетворен видом диаграммы, единственное, чего не хватает, это описания дат на оси x (которое должно быть из столбцов ('dates'). У меня есть ощущение, что проблема заключается в df.plot(ax=ax), но я не уверен.

Любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Если другой ответ здесь не поможет, я бы предложил сделать столбец дат индексом для построения графика.Кажется, есть проблемы, если в некоторых случаях даты являются столбцом, но я не понимаю, почему это так.

df.set_index("dates").plot(ax=ax, x_compat=True)
0 голосов
/ 15 ноября 2018

Действительно, проблема с df.plot(ax=ax). Попробуйте заменить его на df.plot(x='dates'), чтобы отобразить отдельный столбец.

...