категоризированный гистограмма в боке питон - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь построить 3-х уровневую категорию в bokeh python, но у меня проблема, и мой сюжет не работает. Не могли бы вы мне помочь?

ниже мой код:

from bokeh.models import ColumnDataSource, FactorRange
from bokeh.io import show
p = figure(plot_height=250, title="Fruit Counts by Year")

#tp is my data as pandas DataFrame

x1=list(tp['SRN'])
x2=list(tp['SN'])
x3=list(tp['PN'])
counts = list(tp['VS.FEGE.RXMAXSPEED'])
x=[("SRN"+str(a1),"SN"+str(a2),"pN"+str(a3)) for a1,a2,a3 in zip(x1,x2,x3)]
source = ColumnDataSource(data=dict(x=x, counts=counts))
p =figure(x_range=FactorRange(*x),plot_height=250,title="title",toolbar_location=None, tools="")
p.vbar(x='x', top='counts', width=0.9,source=source)
show(p)

tp данные, как показано ниже:

   SRN  SN  PN  VS.FEGE.RXMAXSPEED  VS.FEGE.TXMAXSPEED
0   0   18  0   1.794           0.307
1   0   18  1   1.896           0.307
2   0   19  0   131238.122      574793.502
3   0   19  1   31806.984       126149.078
4   0   20  0   4.968           0.307

Я не получаю никакой конкретной ошибки, просто график не отображается. Также я хочу знать, как работает «x_range = FactorRange (* x)» и есть ли какой-нибудь предупредительный способ вместо этого?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Я нашел проблему, это связано с тем, что ключевой аргумент x_range снова определен на рисунке, если x_range будет ссылаться позже на основе данных, это решит проблему:

p =figure(x_range=FactorRange(*x),plot_height=250,title="title",toolbar_location=e, tools="")

p.x_range.factors = x
0 голосов
/ 29 апреля 2018

Судя по всему, вы не импортировали Bokeh.Plotting, которая определяет фигуру.

from bokeh.models import ColumnDataSource, FactorRange
from bokeh.io import show
from bokeh import plotting

p = plotting.figure(plot_height=250, title="Fruit Counts by Year")

Называйте функцию "фигура", как и везде, где вы ее используете. Это устранит ошибку «Рисунок не определен», которая возникает в вашем случае.

...