【问题标题】:Bokeh VBar chart data not populatingBokeh VBar 图表数据未填充
【发布时间】:2018-11-29 23:08:18
【问题描述】:

我希望在 Bokeh 中创建一个带有选择小部件的 VBar 图表。在添加 Select 小部件之前,我只是想用一家技术公司填充 VBar。当我执行下面的代码时,我得到了正确的标题和轴标题和颜色等的图形输出,但没有填充数据。我错过了什么?

#Hist
b_hist = figure(title="Tech Data", 
                tools=["save, wheel_zoom,box_zoom,reset"], 
                background_fill_color = "white")
#title formatting
b_hist.title.align = "center"
b_hist.title.text_color = "midnightblue"
b_hist.title.text_font_size = '18pt'

#axis title formatting
b_hist.yaxis.axis_label = "Millions"
b_hist.xaxis.axis_label = "Quarters"
b_hist.xaxis.axis_label_text_color = "midnightblue"
b_hist.yaxis.axis_label_text_color = "midnightblue"
b_hist.xaxis.axis_label_text_font_size = '14pt'
b_hist.yaxis.axis_label_text_font_size = '14pt'

one_name = tech_firms[tech_firms['Company Name']=="Apple"]

b_hist.vbar(x = one_name.QTR, top = one_name.PROFIT, width=0.9)

show(b_hist)

one_name 中的示例数据:

print(one_name.dtypes)

收益PROFIT = int64, Company Name = object, QTR = object

【问题讨论】:

  • 一个简单的p = figure(); p.vbar(x=10, top=20, width=0.9) 对我来说很好,所以它是关于你没有包括的部分的东西。你能提供一个完整的最小例子吗?
  • 嗨@bigreddot,我唯一遗漏的是加载tech_firms df,其中包含专有数据集,但我通过print(one_name)验证了one_name,它包括所有列(最重要的是利润和 QTR 列)。
  • @bigreddot 啊等一下,x 轴需要数值吗?还是可以包含字符串?
  • 有哪些类型? one_name.QTR 是字符串名称吗?然后,您需要创建一个分类范围。如果您无法共享真实数据,请模拟一些东西。人们想提供帮助,但需要完整的信息。
  • 用户指南有一整章专门用于处理分类(字符串)数据:bokeh.pydata.org/en/latest/docs/user_guide/categorical.html

标签: python pandas jupyter-notebook bokeh


【解决方案1】:

在轴上使用分类值时,您必须告知 Bokeh 这些值是什么,以及您希望它们在轴上出现的顺序(它无法猜测您的意图)。通常是这样的:

p = figure(..., x_range=sorted(df.QTR.unique())

将其作为x_range 传递将在x 轴上按字典顺序对唯一的QTR 值进行排序,但您可以按您需要的任何顺序排列它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2018-06-15
    • 2015-02-08
    • 2018-02-27
    相关资源
    最近更新 更多