【问题标题】:Bokeh - matplotlib - histogram - blank plot散景 - matplotlib - 直方图 - 空白图
【发布时间】:2016-11-01 14:17:58
【问题描述】:


我有以下代码在带有 python 3jupyter notebook 中运行:

from bokeh import mpl
from bokeh.plotting import figure, show, output_notebook
import matplotlib.pyplot as plt

output_notebook()

plt.hist([1,2,3,3,3,3,4,5,4])

show(mpl.to_bokeh())

这为我绘制了一个没有绘图的空白图。

是错误还是我做错了什么?

【问题讨论】:

  • 浏览器控制台有输出吗?
  • 嗨! , 我添加了一张图片
  • 我应该更清楚。如果您可以共享浏览器控制台的输出(在 Chrome 中是设置 -> 更多工具 -> 开发人员工具),这将有助于诊断。
  • 这已经不可能了。自 Bokeh 12.5(2017 年 4 月)以来,support for Matplotlib has been deprecatedmpl.to_bokeh() 已被删除。另请参阅 bryevdv 的 this Github comment

标签: python-3.x matplotlib plot bokeh jupyter-notebook


【解决方案1】:

看起来 plt.hist 的行为有点像 plt.plot 和 plt.show。如果您在 show(mpl.to_bokeh()) 之前调用 plt.show(),您将获得与示例系统相同的结果,如下所示:

我不确定这种行为的根本原因,但一种解决方法是简单地使用散景创建直方图。如果您遵循散景示例,这并不难:

http://docs.bokeh.org/en/latest/docs/gallery/histogram.html

对于您问题中的示例,您可以执行以下操作:

import numpy as np
from bokeh.plotting import figure, show, output_notebook, vplot

output_notebook()
hist, edges = np.histogram([1,2,3,3,3,3,4,5,4])

p1 = figure(title="Bokeh Hist",background_fill_color="#E8DDCB")

p1.quad(top=hist, bottom=0, left=edges[:-1], right=edges[1:],
        fill_color="#036564", line_color="#033649")
show(p1)

给予:

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2018-01-30
    • 2019-08-22
    • 1970-01-01
    相关资源
    最近更新 更多