Диаграмма с накоплением с осью дата-время

Я решил его с помощью библиотеки PHP_PDO , потому что мой хостинг-провайдер не принял мое требование для установки драйвера PDO на сервер Apache.

0
задан moe_95 13 March 2019 в 17:07
поделиться

1 ответ

Вы можете создать сложенную диаграмму области, используя глиф патча. Сначала я использовал df.cumsum для суммирования значений в кадре данных по строкам. После этого я добавляю две строки в фрейм данных с максимальной и минимальной датой и значением Y. Я строю патчи в обратном порядке списка столбцов (исключая столбец даты), чтобы сначала отображался человек с наивысшими значениями лица с более низкими значениями наносятся на график после.

Другая реализация диаграммы с областями с накоплением может быть найдена здесь .

import pandas as pd
from bokeh.plotting import figure, show
from bokeh.palettes import inferno
from bokeh.models.formatters import DatetimeTickFormatter

df = pd.read_csv('stackData.csv')
df_stack = df[list(df)[1:]].cumsum(axis=1)
df_stack['date'] = df['date'].astype('datetime64[ns]')

bot = {list(df)[0]: max(df_stack['date'])}
for column in list(df)[1:]:
    bot[column] = 0
df_stack = df_stack.append(bot, ignore_index=True)
bot = {list(df)[0]: min(df_stack['date'])}
for column in list(df)[1:]:
    bot[column] = 0
df_stack = df_stack.append(bot, ignore_index=True)

p = figure(x_axis_type='datetime')
p.xaxis.formatter=DatetimeTickFormatter(days=["%d/%m/%Y"])
p.xaxis.major_label_orientation = 45


for person, color in zip(list(df_stack)[2::-1], inferno(len(list(df_stack)))):
    p.patch(x=df_stack['date'], y=df_stack[person], color=color, legend=person)
p.legend.click_policy="hide"
show(p)

enter image description here

0
ответ дан Jasper 13 March 2019 в 17:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: