我需要导出我用Bokeh创建的图形和图形的图片.
通常我这样做
output_file("test.html")
Run Code Online (Sandbox Code Playgroud)
但是,我想将该图表复制到Excel工作表中.它不再是交互式的,尽管那会很棒.如何将图形导出为图片?使用代码,而不是单击"预览/保存".
如何在散景图中隐藏x轴和y轴?我已根据此检查并尝试:
p1= figure (... visible=None)
p1.select({"type": "Axis", "visible": 0})
xaxis = Axis(plot=p1, visible = 0)
Run Code Online (Sandbox Code Playgroud)
和http://bokeh.pydata.org/en/latest/docs/user_guide/styling.html#axes一样 但是可以完成它.谢谢
我正在使用Bokeh生成HTML代码,包括带有show方法的图形.此方法以打开HTML打开默认浏览器结束.
我想保存HTML代码,而不显示它.我怎样才能做到这一点 ?
如何禁用散景中轴上的数字的科学输出?例如,我想要400000而不是4.00e + 5
在mpl: ax.get_xaxis().get_major_formatter().set_scientific(False)
我有一个简单的XY数据点图.当我将鼠标悬停在它上面时,我希望我的Bokeh图形显示每个数据点的整数值.我接近得到我想要的东西但是当我将鼠标悬停在数据点上时,它显示一个浮点数然后更高,它使用科学记数法.有没有办法让悬停工具只返回X和Y的整数值而不使用科学记数法?
这是一些示例代码:
from bokeh.plotting import *
from bokeh.models import HoverTool
x = range(1,101)
y = [i*i for i in x]
TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select, hover"
p = figure(x_axis_label = "Days",
y_axis_label = "Return",
tools=TOOLS)
p.circle(x, y)
#adjust what information you get when you hover over it
hover = p.select(dict(type=HoverTool))
hover.tooltips = [
("Days", "$x"),
("Return", "$y"),
]
show(VBox(p))
Run Code Online (Sandbox Code Playgroud) 我有一些带有一些字形的图形,但只想要显示某些字形的工具提示.目前有没有办法在Bokeh中实现这一目标?
或者,有没有办法将两个数字叠加在一起?似乎这会让我完成我想做的事情.
我想给Bokeh一个大熊猫数据框,以绘制一条多行的折线图.
x轴应该是df.index,每个df.columns应该是一个单独的行.
这就是我想做的事情:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
p = figure(width=1200, height=900, x_axis_type="datetime")
p.multi_line(df)
show(p)
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
RuntimeError: Missing required glyph parameters: ys
Run Code Online (Sandbox Code Playgroud)
相反,我设法做到了这一点:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
ts_list_of_list = []
for i in range(0,len(toy_df.columns)):
ts_list_of_list.append(toy_df.index)
vals_list_of_list = toy_df.values.T.tolist()
p …Run Code Online (Sandbox Code Playgroud) 有谁知道如何在图表外的散景中携带图例?我唯一可以做的操作就是选择一个位置:
top_right, top_left, bottom_left or bottom_right
Run Code Online (Sandbox Code Playgroud)
使用:
legend()[0].orientation = "bottom_left"
Run Code Online (Sandbox Code Playgroud)
当我尝试不同的时候,我收到错误信息:
ValueError: invalid value for orientation: 'outside'; allowed values are top_right, top_left, bottom_left or bottom_right
Run Code Online (Sandbox Code Playgroud) 有没有办法用Bokeh绘制无限水平线?无论用户缩放多远,线的端点都不应该变得可见.
这是我到目前为止所尝试的.它只打印一个空画布:
import bokeh.plotting as bk
import numpy as np
p = bk.figure()
p.line([-np.inf,np.inf], [0,0], legend="y(x) = 0")
bk.show(p)
Run Code Online (Sandbox Code Playgroud)
一种方法是将端点设置为极高/低,并且数字的x_range和y_range相对于它们非常小.
import bokeh.plotting as bk
import numpy as np
p = bk.figure(x_range=[-10,10])
p.line([-np.iinfo(np.int64).max, np.iinfo(np.int64).max], [0,0], legend="y(x) = 0")
bk.show(p)
Run Code Online (Sandbox Code Playgroud)
但是,我希望有人有一个更优雅的解决方案.
编辑:删除过时的解决方案
我想使用循环来加载和/或修改数据,并使用Bokeh在循环中绘制结果(我熟悉Matplotlib的axes.color_cycle).这是一个简单的例子
import numpy as np
from bokeh.plotting import figure, output_file, show
output_file('bokeh_cycle_colors.html')
p = figure(width=400, height=400)
x = np.linspace(0, 10)
for m in xrange(10):
y = m * x
p.line(x, y, legend='m = {}'.format(m))
p.legend.location='top_left'
show(p)
Run Code Online (Sandbox Code Playgroud)
这会产生这个情节

如何使颜色循环而不编码颜色列表和模数操作,以便在颜色数量用完时重复?
有一些关于GitHub的讨论,问题351和2201,但目前尚不清楚如何使这项工作.搜索的时候,我得到了四支安打文档为cycle color实际上没有包含这个词cycle的页面上的任何地方.