使用Bokeh scatter函数时如何获取对数刻度.我正在寻找以下内容:
scatter(x, y, source=my_source, ylog=True)
Run Code Online (Sandbox Code Playgroud)
要么
scatter(x, y, source=my_source, yscale='log')
Run Code Online (Sandbox Code Playgroud) 我正在研究Bokeh(0.6.1)教程并尝试关闭其中一个运动图中的刻度线和标签,即散点图:
from __future__ import division
import numpy as np
from six.moves import zip
from bokeh.plotting import *
from bokeh.objects import Range1d
output_file("scatter.html")
figure()
N = 4000
x = np.random.random(size=N) * 100
y = np.random.random(size=N) * 100
radii = np.random.random(size=N) * 1.5
colors = [
"#%02x%02x%02x" % (r, g, 150)
for r, g in zip(np.floor(50+2*x), np.floor(30+2*y))
]
circle(x, y, radius=radii,
fill_color=colors, fill_alpha=0.6,
line_color=None, Title="Colorful Scatter")
grid().grid_line_color = None
axis().axis_line_color = None
# QUESTION PART 1: Is this the right …Run Code Online (Sandbox Code Playgroud) 从我读到的内容可以通过使用散景服务器访问Bokeh的动态和大数据渲染功能.
在Bokeh文档中,简要提到了使用blueprint api将散景服务器嵌入到Flask应用程序中.此选项保留了所有Bokeh的动态和大数据渲染功能.
我想为django1.7应用程序做同样的事情.
这已经完成了吗?
如果有的话有什么例子吗?
有没有一种简单的方法可以将Bokeh图自动适应用于显示浏览器的屏幕?现在我手动设置绘图宽度和高度.
注意:当我说合适时,我的意思是我希望绘图填充80%的可见屏幕.
我正在使用Jupyter笔记本中的Bokeh 0.12.2,并经常抛出"模型必须只由一个文档拥有"的例外情况:
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-23-f50ac7abda5e> in <module>()
2 ea.legend.label_text_font_size = '10pt'
3
----> 4 show(column([co2, co, nox, o3]))
C:\Users\pokeeffe\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\io.py in show(obj, browser, new, notebook_handle)
308 '''
309 if obj not in _state.document.roots:
--> 310 _state.document.add_root(obj)
311 return _show_with_state(obj, _state, browser, new, notebook_handle=notebook_handle)
312
C:\Users\pokeeffe\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\document.py in add_root(self, model)
443 self._roots.append(model)
444 finally:
--> 445 self._pop_all_models_freeze()
446 self._trigger_on_change(RootAddedEvent(self, model))
447
C:\Users\pokeeffe\AppData\Local\Continuum\Anaconda3\lib\site-packages\bokeh\document.py in _pop_all_models_freeze(self)
343 self._all_models_freeze_count -= 1
344 if self._all_models_freeze_count == 0:
--> 345 self._recompute_all_models()
346 …Run Code Online (Sandbox Code Playgroud) 我想以编程方式更改DataTable对象行选择(没有JS,只是python).我试图使用selected底层ColumnsSource 的属性,但没有成功.如何才能做到这一点?
import pandas as pd
import matplotlib.pyplot as plt
file = 'd:\\a\\pandas\\test.xlsx'
data = pd.ExcelFile(file)
df1 = data.parse('Link')
df2 = df1[['dataFor', 'total']]
df2
Run Code Online (Sandbox Code Playgroud)
收益:
print (type(df2))
Run Code Online (Sandbox Code Playgroud)
告诉我
class 'pandas.core.frame.DataFrame'
Run Code Online (Sandbox Code Playgroud)
试
df2.plot(kind='line')
Run Code Online (Sandbox Code Playgroud)
回报
matplotlib.axes._subplots.AxesSubplot at 0xe4241d0
Run Code Online (Sandbox Code Playgroud)
可能是环境吗?
Jupyter notebook > Help > About
The version of the notebook server is 4.2.3 and is running on:
Python 3.5.2 |Anaconda 4.2.0 (32-bit)| (default, Jul 5 2016, 11:45:57) [MSC v.1900 32 bit (Intel)]
Run Code Online (Sandbox Code Playgroud)
故障在哪里?matplotlib仍然是标准还是初学者应该选择Bokeh还是两者兼而有之?
似乎至少有两种或三种主要方式来构建与Bokeh 通信的应用程序bokeh-server.它们对应的文件夹 app,embed和plotting/ glyphs下的例子在散景目录.
关于它们之间的差异,我在这里阅读以下内容:
在您使用的
stock_app.py(app文件夹)示例bokeh-server中嵌入applet并从您指定的url提供它.这就是为什么你StockApp创建一个新类并创建一个函数来创建它的新实例并使用@bokeh_app.route("/bokeh/stocks/")和来 装饰它@object_page("stocks").您可以按照app示例(滑块,库存和交叉过滤器)并使用散景@object_page和@bokeh_app.route装饰器来创建自定义URL.在
taylor_server.py示例(glyphs文件夹)上,会话对象负责bokeh-server为您创建所有内容.从此界面无法自定义URL或创建别名.
但是这让我很困惑,Bokeh术语中的"小程序"和"嵌入"是什么意思,小程序之间的区别是
什么(推测app和embed)和plotting/ glyphs?
此外,我认为"嵌入"的概念仅涉及我们在embed文件夹中看到的设计模式,如示例中所示 animated.py,我们tag在HTML文件的主体中嵌入了该模式.我没有看到它stock_app.py,为什么它是一个嵌入的例子?
我正在尝试使用Bokeh绘制一个包含年份和数字列的Pandas数据框DateTime.如果DateTime指定为x,则行为是预期的(x轴上的年份).但是,如果我用set_index打开DateTime列入数据帧的指数,那么只有指定y的TimeSeries在x轴毫秒我得到的时间.一个最小的例子
import pandas as pd
import numpy as np
from bokeh.charts import TimeSeries, output_file, show
output_file('fig.html')
test = pd.DataFrame({'datetime':pd.date_range('1/1/1880', periods=2000),'foo':np.arange(2000)})
fig = TimeSeries(test,x='datetime',y='foo')
show(fig)
output_file('fig2.html')
test = test.set_index('datetime')
fig2 = TimeSeries(test,y='foo')
show(fig2)
Run Code Online (Sandbox Code Playgroud)
这是预期的行为还是错误?我希望两种方法都有相同的图片.
干杯!!
我想刷新散景文档,以便用新的替换旧的图.但是,现在我只是将新的图表附加到文档中,以便旧版本不会消失.
#myfile.py
from bokeh.plotting import curdoc, figure
doc = curdoc()
p1 = figure(width=1500, height=230, active_scroll="wheel_zoom")
doc.add_root(p1)
doc.clear()
p2 = figure(width=1500, height=500, active_scroll="wheel_zoom")
doc.add_root(p2)
Run Code Online (Sandbox Code Playgroud)
这导致第二个绘图显示在第一个绘图之后,尽管我正在寻找的预期行为是替换第一个绘图的第二个绘图.我该如何解决这个问题?我通过散景服务--show myfile.py在散景服务器上运行它
bokeh ×10
python ×7
pandas ×2
datatable ×1
django ×1
matplotlib ×1
python-3.x ×1
time-series ×1