- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这段代码在使用 bokeh==2.1.1
时呈现图像(尽管是颠倒的):
from PIL import Image
import numpy as np
import requests
from bokeh.plotting import figure
from bokeh.io import output_notebook
from bokeh.plotting import show
output_notebook()
response = requests.get('https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg', stream=True)
rgba_img = Image.open(response.raw).convert("RGBA")
numpy_img = np.array(rgba_img)
fig = figure()
plotted_image = fig.image_rgba(image=[np_img], x=50, y=50, dw=50, dh=50)
show(fig)
在 bokeh==2.2.0
(以及更高版本)中运行完全相同的代码不会输出任何内容,也不会引发任何错误。
Bokeh release notes没有提及对 image_rgba()
最佳答案
错误在浏览器中的JS控制台(因为错误实际上发生在浏览器中,而不是在“python端”):
Unhandled Promise Rejection: Error: expected a 2D array
如果您查看 np_img
,您会发现它不是二维数组:
In [3]: np_img.shape
Out[3]: (297, 275, 4)
In [4]: np_img.dtype
Out[4]: dtype('uint8')
Bokeh 需要 uint32 的 2D 数组,而不是 uint8 的 3D 数组,情况一直如此,文档中也进行了演示。过去有可能意外或无意地接受了 3D 数组(这就是发行说明中未注明任何更改的原因),或者在 NumPy 或 PIL 端转换为 NumPy 数组时可能发生了某些更改。无论如何,您都需要创建一个 2D View :
np_img = np.array(rgba_img)
np_img2d = np_img.view("uint32").reshape(np_img.shape[:2])
fig = figure()
plotted_image = fig.image_rgba(image=[np_img2d], x=50, y=50, dw=50, dh=50)
关于python - 从 bokeh==2.1.1 升级到 bokeh==2.2.0 会破坏 figure.image_rgba(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64490018/
我希望能够使用 Bokeh 将鼠标悬停在 RGBA 图像上。为此,我想指定一个 channel 作为悬停时的值或另一个具有相同形状的数据。例如,这里是一个最小的例子,我想在悬停时显示像素的 alpha
我有一种情况,我想生成一个带有日期时间轴的 Bokeh image_rgba 图。当我尝试使用类似于以下代码的内容时: p1 = figure(x_axis_type = 'datetime', y_
我试过使用 bokeh image_rgba 方法但发现它非常慢,我只显示一个 1000*500 像素的图像并且 html 需要大约 5 秒来加载(这里没有基于网络的东西,我拥有一切本地运行/存储)
这段代码在使用 bokeh==2.1.1 时呈现图像(尽管是颠倒的): from PIL import Image import numpy as np import requests from bo
我是一名优秀的程序员,十分优秀!