python - 在散景中使用半透明调色板
问题描述
我想在散景中创建一个具有不同 alpha 值的调色板,所以有些颜色是半透明的。
我尝试将一些 RGBA 值作为十六进制 ( #33eedd777
) 或 CSS 颜色 ( rgba(129, 23, 43, 90)
) 作为调色板传递,但散景引发了ValueError
.
这是一个代码示例:
import numpy as np
from bokeh.io import output_file, show
from bokeh.plotting import figure
from bokeh.transform import linear_cmap
from bokeh.util.hex import hexbin
n = 50000
x = np.random.standard_normal(n)
y = np.random.standard_normal(n)
bins = hexbin(x, y, 0.1)
p = figure(tools="wheel_zoom,reset", match_aspect=True, background_fill_color='#440154')
p.grid.visible = False
cm = ['#08459400', '#f7fbffff']
cm = ['rgba(80, 80, 80, 10)', 'rgba(8, 8, 8, 255)', ]
p.hex_tile(q="q", r="r", size=0.1, line_color=None, source=bins,
fill_color=linear_cmap('counts', cm, 0, max(bins.counts)))
show(p)
解决方案
从 Bokeh0.13.0
开始,这似乎是一个错误。的Seq(Color)
属性LinearColorMap
应该接受 RGBA 元组的列表,例如[(100, 80, 200, 0.2), ...]
,它确实接受它们而没有验证错误,但不会生成正确的输出。这就是答案,此时没有要添加的其他信息或解决方法(不能使用 CSS 颜色字符串,并且十六进制颜色代码不能有 alpha)。
我鼓励您在 GitHub 上提交包含此信息的错误报告,以便可以为所有用户修复它:
推荐阅读
- python - Get all usernames stored in TinyDB database
- javascript - 构造函数原型中新添加的函数在对象上调用时不起作用
- leaflet - 如何在 Leaflet.js 中正确添加多边形
- android - 我想制作一个带计时器的按钮?
- splunk - 如何使用正则表达式在一行中计算 splunk 日志中的 id
- python - 在 Ubuntu16.04 上安装 PyQT5
- flume - Flume:如何使用 spoolDir 跟踪指定的子文件夹?
- asp.net-core-mvc - 如何从.net core 2.1 mvc中的控制器调用自定义身份注册方法
- python - 遍历具有多个条件的所有行
- c# - 按钮重复而不是一次加载相同的信息(C#)