Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plot Bokeh图填充半圆_Plot_Bokeh_Glyph - Fatal编程技术网

Plot Bokeh图填充半圆

Plot Bokeh图填充半圆,plot,bokeh,glyph,Plot,Bokeh,Glyph,我想在bokeh绘制一个填充的半圆,以显示填充管道()的模型,其中,根据用户输入,水位会发生变化。我查看了可用的glyphs(),但没有找到一个有效的glyphs。我希望我可以填充弧雕文,但这似乎是不可能的 任何建议都将不胜感激。仅此而已,没有任何内置功能。查看您链接的图表,您可以将楔子字形(用于“pacman”部分)和补丁组合起来填充其余部分 from bokeh.io import show from bokeh.plotting import figure from math import

我想在bokeh绘制一个填充的半圆,以显示填充管道()的模型,其中,根据用户输入,水位会发生变化。我查看了可用的glyphs(),但没有找到一个有效的glyphs。我希望我可以填充弧雕文,但这似乎是不可能的


任何建议都将不胜感激。

仅此而已,没有任何内置功能。查看您链接的图表,您可以将
楔子
字形(用于“pacman”部分)和补丁组合起来填充其余部分

from bokeh.io import show
from bokeh.plotting import figure
from math import pi, sin, cos

p = figure(match_aspect=True)
p.wedge(x=0, y=0, radius=1, start_angle=-5*pi/4, end_angle=pi/4)
p.patch(x=[0, -cos(pi/4), cos(pi/4)], y=[0, sin(pi/4), sin(pi/4)])

p.circle(0, 0, radius=1, fill_color=None, line_color="black", line_width=3)

# hack: Bokeh does not yet auto-range this odd combination well
p.rect(0, 0, 2, 2, color=None)

show(p)

如果需要以某种方式更新这些数据,您可能希望将其封装在某个帮助函数中,以生成正确的数据值和参数。最佳实践是尽可能先绘制一次图示符,然后在需要更改时仅更新其数据源

最后几点注意事项:

  • 您需要
    match_aspect=True
    以确保“像素空间”和“数据空间”中的纵横比相同,这是确保圆实际上是“数据空间”中的圆所必需的

  • match_aspect
    要求您使用默认的自动范围。如果您设置了显式的范围值,Bokeh相信您知道您想要什么,即使这会弄乱方面

  • 这是单个图示符的奇怪组合。。。自动范围本身并不适合它们。我在圆圈周围添加了一个不可见的矩形来帮助它