我试图在图表上绘制几个点,类似于热图。
示例代码(改编自此处的热图部分):
import pandas as pd
from bokeh.io import output_notebook, show
from bokeh.models import BasicTicker, ColorBar, ColumnDataSource, LinearColorMapper, PrintfTickFormatter
from bokeh.plotting import figure
from bokeh.transform import transform
import numpy as np
# change this if you don't run it on a Jupyter Notebook
output_notebook()
testx = np.random.randint(0,10,10)
testy = np.random.randint(0,10,10)
npdata = np.stack((testx,testy), axis = 1)
hist, bins = np.histogramdd(npdata, normed = False, bins = (10,10), range=((0,10),(0,10)))
data = pd.DataFrame(hist, columns = [str(x) for x in range(10)])
data.columns.name = …Run Code Online (Sandbox Code Playgroud) 我正在使用 Python 3.6 和 Bokeh 0.13。
将鼠标悬停在条形图上时,我想将浮点数显示为货币字符串,其中没有小数,并且数字前面有货币符号。以下是我到目前为止的工具提示。
tooltip_net_rev = [("Net Revenue", "$@y{int}")]
Run Code Online (Sandbox Code Playgroud)
它呈现如下所示的字符串。除了逗号之外,这让我大部分时间都在那里。
Net Revenue: $128451
Run Code Online (Sandbox Code Playgroud)
这是我希望它看起来像逗号。
Net Revenue: $128,451
Run Code Online (Sandbox Code Playgroud)
任何有关工具提示格式的帮助将不胜感激。谢谢
我使用 Python 和 Bokeh 在同一个图表中生成了两个散点图,并添加了复选框以允许单独查看散点图。
如何使用 Bokeh 为两个散点图(带方程)添加回归线?
output_file("Scatterplot.html")
#scatter plot
S0 = f.circle(A_area, A_price,
fill_alpha=0.3, size=3, color='green')
S1 = f.circle(B_area, B_price,
fill_alpha=0.3, size=3, color='blue')
#widget-checkbox
checkboxes = CheckboxGroup(labels=["A", "B"], active=[0, 1])
callback = CustomJS(code="""S0.visible = false; // same S0 passed in from args
S1.visible = false;
// cb_obj injected in by the callback
if (cb_obj.active.includes(0)){S0.visible = true;} // 0 index box is S0
if (cb_obj.active.includes(1)){S1.visible = true;}""",
args={'S0': S0, 'S1': S1})
checkboxes.js_on_click(callback)
Run Code Online (Sandbox Code Playgroud) 如何创建一个图例来控制多个散景人物?或者如何自定义使用 bokeh 创建的导出 html 文件以添加具有类似功能的图例?
这是场景。我创建了一个包含 4 个不同图形的 html 文件。每个图形都有一个图例,其中包含特定图形中显示的各行的标签/名称。四个图例中的每一个都可以单击以分别切换每个图中的线条。
虽然这四个人物各有一个传说,但线条是相关的,所以每一线条都描述一件事。
我现在想为组合在一起的所有图形创建一个图例,以切换所有四个图形中的每一行。
也许有办法以某种方式将这种功能添加到导出的 html 文件中?
我认为经验丰富的人知道如何实现这一目标。
提前致谢!
亲切的问候
试图让 Holoviews/bokeh 正常工作,但不幸的是我从一开始就遇到了问题。按照此处的教程进行操作:http://holoviews.org/reference/elements/bokeh/Chord.html
但我一开始就陷入困境。
import pandas as pd
import holoviews as hv
from holoviews import opts, dim
from bokeh.sampledata.les_mis import data
#all above imports run fine, I have ensured that bokeh and holoviews are
#updated (via pip install --upgrade xxx)
#following line produces the error:
hv.extension('bokeh')
Run Code Online (Sandbox Code Playgroud)
我收到的消息是:ImportError: None of the backends can be imported
如果有帮助,当我尝试解决此问题时,我被告知尝试不同的导入:
import holoviews.plotting.bokeh
Run Code Online (Sandbox Code Playgroud)
但这会产生不同的错误:ImportError:无法导入名称“FreehandDrawTool”
因此,我什至无法开始探索散景提供的不同可视化选项。
我尝试使用 Jupyter Notebook 和 Atom。我已经安装了所有依赖项并且也是最新的(matplotlib、pandas 等)谢谢。
使用散景创建堆积面积图,我无法弄清楚如何添加当光标位于区域内不同点上时将显示的悬停工具提示。我见过的唯一示例是堆积折线图,它们的工作方式似乎不同。
如果我有:
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, show
data = {
"months": [date(2019, 5, 1), date(2019, 6, 1), date(2019, 7, 1), date(2019, 8, 1)],
"dogs": [7, 5, 12, 8],
"cats": [25, 20, 10, 7],
}
column_data = ColumnDataSource(data=data)
p = figure(
min_width=500,
plot_height=300,
sizing_mode="stretch_width",
toolbar_location=None,
tools="",
x_axis_type="datetime",
)
p.varea_stack(
["dogs", "cats"],
x="months",
color=["#ff0000", "#00ff00"],
source=column_data,
)
show(p)
Run Code Online (Sandbox Code Playgroud)
这会创建一个像这样的图表:
我应该如何添加 HoverTool 提示?
我有一个包含许多 tif 文件的动态地图,当我创建动态地图时,它会创建一个显示在图像右侧的时间滑块(这就是我想要的)。唯一的事情是我希望能够将此滑块重新定位到我的图像上方,并可能对其应用一些样式。有没有办法做到这一点?
我有一个包含类别和子类别的图。我想绘制它,使其不堆叠,但我希望类别在其值不存在时不显示。
您可以在下面找到示例代码和我正在尝试做的事情的图片。在图片上,您可以看到 X 中 B 的位置和 Y 中 C 的位置。我希望它们不在那里。我怎么做?
import pandas as pd
import hvplot.pandas
df = pd.DataFrame({
'category': ['A', 'A', 'B', 'B', 'C', 'C'],
'subcategory': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'value': [10, 20, 0, 30, 40, 0]
})
df_filtered = df[df['value'] != 0]
grouped = df_filtered.groupby(['category', 'subcategory']).sum()
grouped.hvplot.bar(stacked=False, by='category')
Run Code Online (Sandbox Code Playgroud)
最近发布的散景0.7具有slickgrid支持.我是Bokeh的新手.我不知道从哪里开始没有例子.做了一些在线搜索,除了动作中散景光滑的动画演示,我找不到示例代码.
因此,具体的问题第一:
- >如何找到如何使用此功能.是否有散景光滑教程/文档?
和一般的问题:
- >当新的Bokeh功能可用时从哪里开始?
谢谢!
我可以将TIFF图像作为NumPy数组加载到内存中,其中每个像素由3元素RGB矢量表示:
from PIL import Image
import numpy as np
arr=np.array(Image.open(imgfn))
Run Code Online (Sandbox Code Playgroud)
例如,上面的arr可能有形状(2469,2858,3).
按照Bokeh文档,在Bokeh中,像素是相对于颜色映射解释的1D数字.
如何将3D RGB TIFF阵列映射到1D Bokeh色彩映射索引数组,以及我应该使用什么色彩映射?
这篇文章建议我应该写一个名为RGBAColorMapper的东西.我怎么做?
还有一些叫做image_rgba的东西,它是一个4D像素,如何将3D像素转换为4D才能使用它?
基本上我正在寻找与MatPlotLib imshow相同的功能.