У меня возникли некоторые серьезные проблемы, связанные с построением моего первого линейного графика, и в настоящее время я работаю и исследую свои ошибки в течение долгого времени, изнуряя все усилия.Как форматировать дату и время для диаграммы строк Python Bokeh/matplotlib datetime и проблемы с графиком
У меня есть следующие данные примера времени даты с продажами в следующем формате. Данные импортируются из моей базы данных MySQL
2015-12-30 01:58:00 10
2015-12-30 01:59:00 16
2015-12-30 02:00:00 21
2015-12-30 02:01:00 5
2015-12-30 02:02:00 2
2015-12-30 02:03:00 4
2015-12-30 02:04:00 11
2015-12-30 02:06:00 5
2015-12-30 02:07:00 10
Я трудолюбивый на графиках линии и хотел бы завершить линейный график в обоих боке и Matplotlib. Мой первый выбор - пример графического графика bokeh here.
Сценарии matplotlib, которые я использую, прокомментированы ниже.
Я получил много и много ошибок и перечислю ошибки ниже, поскольку я иду. Общий краткий обзор ошибок приводит меня к мысли, что мое datetime не отформатировано правильно, и я не понимаю Auto datetime, отформатированный в matplotlib. Я также использовал регулярные выражения для сортировки даты и печати даты в правильном формате.
#row[0] is the date
#row[1] is the sales
2015-12-30 02:09:00 1
2015-12-30 02:10:00 3
2015-12-30 02:12:00 2
2015-12-30 02:13:00 1
2015-12-30 02:14:00 18
2015-12-30 02:15:00 1
2015-12-30 02:16:00 10
2015-12-30 02:17:00 2
пример боке
import numpy as np
from bokeh.plotting import figure, output_file, show
import utils
from bokeh.io import output_notebook, show
from bokeh.plotting import figure
# the import from MYSQL works great and data prints 100% works great
db = MySQLdb.connect("all my database stuff")
cur = db.cursor()
cur.execute("SELECT Statement")
#row[0] is the date in the format above "2015-12-30 02:09:00"
#row[1] is the sales in the format above "1"
try:
for row in cur.fetchall():
date = row[0]
sales = row[1]
#regex to strip date hypens and colons replace with spaces
#date_clean = re.sub('[^A-Za-z0-9]+', '', date)
print date,
print sales
#print date_clean prints with no extra characters
except:
print "error: unable to fetch data"
# prepare some data
x = 'date'
#x = 'date_clean'
y = 'sales'
# output to static HTML file
output_file("lines.html", title="line plot example")
# create a new plot with a title and axis labels
p = figure(title="example chart", x_axis_label='x', y_axis_label='y')
# add a line renderer with legend and line thickness
p.line(x, y, legend="Temp.", line_width=2)
# show the results
show(p)
Текущие ошибки, хотя я работал через сотни ошибок. «Lines.html» открывается с полем, но нет строки, дат или продаж.
No handlers could be found for logger "/usr/local/lib/python2.7/dist-packages/bokeh/validation/check.pyc"
(process:20113): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
здесь код Matplotlib Я использую
x = date_clean
y = sales
plt.plot_date(x=date_clean, y=sales)
plt.title("example chart")
plt.ylabel("sales")
plt.grid(True)
plt.show()
"""
Может кто-то мне точку в правильном направлении. Может ли кто-нибудь помочь с правильным форматом для даты времени bokeh или matplotlib требует выполнения правильного линейного графика и может кто-нибудь объяснить текущую ошибку.
Я не знаю 'bokeh', но какова ошибка, которую вы получаете с помощью' matplotlib'? –
для matplotlib Я получаю окно вывода QT. 1. Внутри графика находится только одна синяя точка посередине. вокруг поля пуст, за исключением стандартных кнопок назад. Я получаю ложные ошибки – jedimonk
при использовании выражений reg: error dt = datetime.datetime.fromordinal (ix) .replace (tzinfo = UTC) OverflowError: целое число со знаком больше, чем максимальное – jedimonk