标签: bokeh

散景循环绘制多个图像

我想在散景中绘制多个图?例如,这段代码以非常低效的方式完成了我想要的事情。我想要同样的东西,但可能带有loop? 或任何我不知道的散景功能。

p = figure(...)

p1 = figure(...)

p2 = figure(...)

y = [[1,2,3,4,5,6],[7,8,9,10,11,12],[3,1,4,3,2,5]]
x = [[2,3,4,5,6,7],[8,9,10,11,12,13],[1,4,3,2,5,6]]


plots = []
p.line(x=np.arange(6), y=y[0], color='#CE1141', legend='Prediction')
p.line(x=np.arange(6,12), y=x[0], color='#006BB6', legend='Prediction')
plots.append(p)

p1.line(x=np.arange(6), y=y[1], color='#CE1141', legend='Prediction')
p1.line(x=np.arange(6,12), y=x[1], color='#006BB6', legend='Prediction')
plots.append(p1)

p2.line(x=np.arange(6), y=y[2], color='#CE1141', legend='Prediction')
p2.line(x=np.arange(6,12), y=x[2], color='#006BB6', legend='Prediction')
plots.append(p2)


show(column(*plots))
Run Code Online (Sandbox Code Playgroud)

基本上,我有两个二维数组,我想将它们绘制在一个图中。我在 a 中尝试过,for loop但它绘制了图中的所有内容并多次显示相同的图,我尝试了类似的操作:

for i in range(3):
    p.line(x=np.arange(6), y=y[i], color='#CE1141', legend='Prediction')
    p.line(x=np.arange(6,12), y=x[i], color='#006BB6', legend='Prediction')
p.show()
Run Code Online (Sandbox Code Playgroud)

我可以在这里看到问题,所有内容都绘制在 中p,所以最后我得到了一个所有内容都被绘制的图。

我还尝试创建一个数组并在其中附加绘图,如上面工作效率低下的示例所示,但它显示第一列的空白图,并最后绘制包含其中所有内容的单个图。

python plot bokeh

2
推荐指数
1
解决办法
2909
查看次数

Bokeh TextInput 在同一行显示标题和输入框

我想在输入框内显示 TextInput 的标题,但默认情况下,它显示在 2 个单独的行上。

下面的代码在 Jupyter Notebook 中创建一个 TextInput 框,但它在框上方显示标题。如何让标题与输入框显示在同一行?

from bokeh.layouts import column, row
from bokeh.models.widgets import Slider, TextInput
from bokeh.plotting import ColumnDataSource, figure, output_file, show, reset_output, output_notebook

reset_output()
output_notebook()

layout = row([TextInput(title='my label:', value='something')])

show(layout)
Run Code Online (Sandbox Code Playgroud)

电流输出:

期望的输出:

python bokeh

2
推荐指数
1
解决办法
1116
查看次数

在 Bokeh 中隐藏图例旁边的注释

我有一个交互式散景图,单击图例时可以隐藏某些圆形图。现在,当我通过单击来禁用绘图时,绘制的圆圈会消失,但注释仍然存在。有人可以向我解释一下如何将它们全部打开/关闭吗?或者有人有快速解决办法吗?

和

这是关闭时的图片:

没有

我使用以下代码绘制圆圈+图例:

q.circle('lng', 'lat', source = source2, name='vri', color='red', size=5, hover_line_color="black", legend_label = 'VRI')

vri_labels = LabelSet(x='lng', y='lat', text='kruispuntn', x_offset=5, y_offset=5, source=source2, text_font_size = '10pt')

q.legend.location = "bottom_left"
q.legend.click_policy="hide"

q.add_layout(vri_labels)

show(q)
Run Code Online (Sandbox Code Playgroud)

python plot pandas bokeh

2
推荐指数
1
解决办法
757
查看次数

散景线图:绘制大量线时如何分配颜色

我使用 for 循环在 Bokeh 中创建了多线图(代码如下)。

在输出示例中只有两条曲线。在这种情况下,我可以为每条曲线设置颜色列表。但是,如果我需要绘制大量曲线,如何使用散景调色板之一(例如配对)?我想自动执行此操作,以避免每次增加要绘制的行数时都必须制作颜色列表。

import pandas as pd
import numpy as np
from bokeh.core.properties import value
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
from bokeh.models import ColumnDataSource, CDSView, GroupFilter, HoverTool

from bokeh.palettes import Paired

bokeh_test=pd.read_excel(data, 'bokeh line plot')
display(bokeh_test)


x   y
item        
A   4   0.0000
A   5   0.0000
A   36  39.8879
A   66  46.2022
A   97  32.9306
A   127 25.7896
A   158 21.9209
A   189 18.6405
B   6   4.4775
B   7   1.1710
B   8   0.0000
B …
Run Code Online (Sandbox Code Playgroud)

python palette line-plot bokeh

2
推荐指数
1
解决办法
5336
查看次数

散景中的标签文本位置

我想将 MyText 标签粘贴到我的图形的右下部分,以获得给定的文本和给定的字体大小(如图所示“这非常有趣”,字体大小为“20px”并带有小字符。我通过二分法找到了好的位置)。我需要传递给 x 的函数位置是什么?这应该取决于 len(MyText)、text_font_size 和图形宽度...

from bokeh.models import ColumnDataSource, Label, LabelSet, Range1d
from bokeh.plotting import figure, output_file, show
width,height=400,300
p = figure(plot_width=width, plot_height=height)
MyText='this is super fun'
my_font_size = "20px"
labels = Label(x=width/2+25, y=0,x_units='screen', y_units='screen', text=MyText,text_font_size=my_font_size)
p.add_layout(labels)
show(p)
Run Code Online (Sandbox Code Playgroud)

右下位置

python bokeh

2
推荐指数
1
解决办法
2220
查看次数

使用python在国家地图上绘制数据的最简单方法

无法删除问题.请参考问题:根据字典值使用Basemap对国家/地区进行阴影状态

我想在每个墨西哥州绘制数据(特定年份的病人数).我正在使用jupyter笔记本.到目前为止,我已经看到了几个选项和教程,但似乎没有一个似乎明确解释如何绘制一个国家的地图.下面我解释一些我见过的选项/教程以及为什么它们没有工作(我只是认为教程不是很直接):

  1. Bokeh(http://bokeh.pydata.org/en/latest/docs/gallery/texas.html).在教程中,由于us_counties在bokeh.sampledata中,因此绘制了德州州.但是我没有在抽样数据中找到其他国家.

  2. mpl_toolkits.basemap(http://www.geophysique.be/2011/01/27/matplotlib-basemap-tutorial-07-shapefiles-unleached/).虽然我能够导入shapefile,但我无法运行from shapefile import ShapeFile(ImportError:无法导入名称ShapeFile).此外,我无法下载dbflib库.

  3. 文森特(为什么Python的文森特地图visuzalization不从数据帧映射数据?在说教程出现没有图像(即使我使用的命令)当我运行从答案的代码vincent.core.initialize_notebook()).

  4. Plotly(https://plot.ly/python/choropleth-maps/).本教程绘制了美国从csv表导入信息的地图(没有其他可用国家的信息).如果想要策划另一个国家,是否可以制作表格?

探索了这四个选项我发现教程不是很清楚或不容易理解.我发现很难相信在python中绘制一个国家的地图很困难.我认为必须有一个比过去教程中解释的更简单的方法.

问题是:用python绘制某个国家(任何)地图的最简单(希望是简单的)方法是什么?

我安装了以下软件包:matplotlib,pyshp,mpl_toolkits.basemap,bokeh,pandas,numpy.我还从http://www.gadm.org/下载了墨西哥的地图

提前致谢.

python shapefile matplotlib-basemap bokeh vincent

1
推荐指数
2
解决办法
8765
查看次数

在Bokeh python中创建雷达图的步骤是什么?

目标:在Bokeh python中创建雷达图

为了帮助您,这是我关注的图表类型: 在此处输入图片说明

我从Matplotlib 获得了这个图表示例,这可能有助于缩小解决方案上的差距,但是我看不到如何实现。

以下是我使用散景可以找到的最接近雷达图的示例:

from collections import OrderedDict
from math import log, sqrt

import numpy as np
import pandas as pd
from six.moves import cStringIO as StringIO

from bokeh.plotting import figure, show, output_file

antibiotics = """
bacteria,                        penicillin, streptomycin, neomycin, gram
Mycobacterium tuberculosis,      800,        5,            2,        negative
Salmonella schottmuelleri,       10,         0.8,          0.09,     negative
Proteus vulgaris,                3,          0.1,          0.1,      negative
Klebsiella pneumoniae,           850,        1.2,          1,        negative
Brucella abortus,                1,          2,            0.02,     negative
Pseudomonas aeruginosa,          850,        2,            0.4, …
Run Code Online (Sandbox Code Playgroud)

charts visualization matplotlib python-3.x bokeh

1
推荐指数
1
解决办法
2060
查看次数

holoviews /散景导入错误

我正在和我一起工作

In [2]: bokeh.__version__
Out[2]: '0.12.1'

In [4]: holoviews.__version__
Out[4]: 1.8.4
Run Code Online (Sandbox Code Playgroud)

以下导入

from holoviews.plotting.bokeh import BokehRenderer
Run Code Online (Sandbox Code Playgroud)

产生错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-c53ae81a79e0> in <module>()
----> 1 from holoviews.plotting.bokeh import BokehRenderer

/usr/local/lib/python3.6/site-packages/holoviews/plotting/bokeh/__init__.py in <module>()
      2 
      3 import numpy as np
----> 4 from bokeh.palettes import all_palettes
      5 
      6 from ...core import (Store, Overlay, NdOverlay, Layout, AdjointLayout,

ImportError: cannot import name 'all_palettes'
Run Code Online (Sandbox Code Playgroud)

它以前工作过,我无法追踪发生了什么变化.

python data-visualization python-import bokeh holoviews

1
推荐指数
1
解决办法
1387
查看次数

为什么Bokeh在这里不产生额外的y范围?

我的Bokeh版本是0.12.13和Python 3.6.0,我修改了此处的示例代码:

https://docs.bokeh.org/en/latest/docs/user_guide/plotting.html

我刚刚尝试添加一个额外的y范围。

from bokeh.plotting import output_file, figure, show
from bokeh.models import LinearAxis, Range1d

x = [1,2,3,4,5]
y = [1,2,3,4,5]
y2 = [10,9,8,7,6]
y3 = [23,24,25,26,27]

output_file("twin_axis.html")

p = figure(x_range=(0,6), y_range=(0,6))

p.circle(x, y, color="red")

p.extra_y_ranges = {"foo1": Range1d(start=0, end=11)}
p.circle(x, y2, color="blue", y_range_name="foo1")
p.add_layout(LinearAxis(y_range_name="foo1"), 'left')

p.extra_y_ranges = {"foo2": Range1d(start=21, end=31)}
p.circle(x, y3, color="green", y_range_name="foo2")
p.add_layout(LinearAxis(y_range_name="foo2"), 'right')

p.toolbar_location ="above"
show(p)
Run Code Online (Sandbox Code Playgroud)

虽然原始代码运行良好,但我修改后的代码却没有。我无法弄清楚自己在做什么错。我对bokeh有点陌生,所以请向正确的方向引导。编辑:当我添加第三个y轴时没有输出。但是它只能在左侧使用2个轴。

python charts plot multiple-axes bokeh

1
推荐指数
1
解决办法
1126
查看次数

从熊猫混乱矩阵的散景热图

如何将大熊猫DataFrame展示为散景热图?

https://bokeh.pydata.org/en/latest/docs/user_guide/categorical.html#heat-maps显示了一些示例,但尝试修改始终只给出了一个空图.

示例混淆矩阵:

df = pd.DataFrame([[10, 0, 1], [1, 10, 0], [1, 1, 9]], 
                  columns=['A', 'B', 'C'], 
                  index=['A', 'B', 'C'])
df.index.name = 'Treatment'
df.columns.name = 'Prediction'
Run Code Online (Sandbox Code Playgroud)

python pandas confusion-matrix bokeh

1
推荐指数
1
解决办法
2960
查看次数