使用Bokeh显示和更新文本:更新时设置字形不起作用

时间:2016-05-21 23:22:08

标签: python bokeh

我正在尝试编写一个使用Bokeh显示图形的Web应用程序,并显示从API检索的格式化文本。当用户单击按钮时,显示会随图表内容动态变化。是否有标准的方式来格式化和呈现文本,然后使用Bokeh更新它?

我以为我可以用文字字形做到这一点,但到目前为止,我失败了。以下是我尝试为更新操作做的事情:

def update_graph(attrname, old, new):
    USER_ID = new

    use_df = get_user_df(new, cur, date_from, date_to)
    plot1.title = get_api_output(new, INSIGHT_DATE)

    textplot.text(3, 3, text=["hellllllo"], text_color="firebrick", text_align="center", text_font_size="20pt")

    source1.data['x'] = use_df[use_df['type'] == 0]['date'].values
    source1.data['y'] = use_df[use_df['type'] == 0]['value'].values

这大部分工作都很好。我使用get_user_df从远程数据库中获取一些数据并更新source1,这可以正常工作。同样,标题会根据需要更新。

然而 textplot上没有文字字形,并且控制台中没有出现任何错误。发生了什么以及如何动态调整绘图上的文字字形?

这里也是我用来设置相关情况的代码的代码:

#plot utilities
def mtext(p, x, y, text):
    p.text(x, y, text=[text],
           text_color="firebrick", text_align="center", text_font_size="10pt")

#PLOTS

textplot = Figure(toolbar_location = None, title = 'API text', title_text_font_size='8pt')
mtext(textplot, randint(2, 5), randint(2, 5), 'annotation')

plot1 = Figure(toolbar_location = None, title = 'Distance (k)', title_text_font_size='8pt')
source1 = ColumnDataSource(data = dict(x = use_df[use_df['type'] == 0]['date'].values, y = use_df[use_df['type'] == 0]['value'].values))
plot1.circle('x', 'y', line_color=None, source = source1, color = 'pink', size = 20)

0 个答案:

没有答案