- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 vbar
绑定(bind)到一个 ColumnDataSource
,它根据一些小部件选择进行更新。如果我从 line_width=5
开始,我的初始数据看起来很棒。但是,当我更新图表时,x_range
会更新以适应更新后的数据,并导致条形的相对宽度发生变化。
理想情况下,宽度应始终与显示的条数成正比。我尝试查看 x_range
和 xaxis
上的各种属性,看看我是否可以获得范围并尝试自己计算宽度,但我没有找到任何有用的东西.一直在环顾四周,文档什么也没有。有什么想法吗?
最佳答案
我终于在@bigreddot 的帮助下解决了这个问题。事实证明我使用了错误的属性。我需要使用 width
而不是使用 line_width
。由于我的 x_range
是一个 datetime
范围,并且 datetimes
以毫秒表示,因此我需要足够大的宽度才能正确显示。这负责在放大时设置比例宽度,因为宽度表示 x_axis
上的特定周期。
因为我有一个函数来改变我如何分组我的列的freq
和更新我的ColumnDataSource.data
,我只需要重新计算宽度
当我更新它时。
这是工作代码:
def get_data(freq='MS'):
return pd.DataFrame(srs.groupby(pd.Grouper(freq=freq)).mean())
source = ColumnDataSource(data=ColumnDataSource.from_df(get_data()))
def get_width():
mindate = min(source.data['date'])
maxdate = max(source.data['date'])
return 0.8 * (maxdate-mindate).total_seconds()*1000 / len(source.data['date'])
f = figure(plot_width=550, plot_height=400, x_axis_type="datetime")
f.x_range.set(bounds='auto')
r = f.vbar(source=source, top='volume', x='date', width=get_width())
bar_glyph = f.renderers[-1].glyph
handle = show(f, notebook_handle=True)
和我的更新函数:
def update_data(freq={'Quarter': 'QS', 'Month': 'MS', 'Week': 'W'}):
source.data = ColumnDataSource.from_df(get_data(freq))
r.glyph.width = get_width()
push_notebook()
i = interact(update_data)
关于python - 在 Bokeh 中根据 x_range 自动设置 vbar line_width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40185561/
问题 是否可以将悬停工具与 Bokeh vbar 字形一起使用? 问题 使用相同的基本设置,我可以使用circle字形上的悬停工具获得很好的工具提示,但不能在vbar字形上获得很好的工具提示 演示 设
我想制作一些简单数据的条形图,例如像这样的 Pandas 数据框。 Cats 4 Dogs 3 Mice 27 我想要一个工具提示,当鼠标悬停在栏上时显示如下内容: Name: Cats Count:
我准备了两个 ColumnDataSource,它们的 y 轴数据集不同。 plot.line('x', 'y', source=source, line_width=2) plot.
尝试将以下内容读入 vbar Bokeh 图表,但它不会渲染空白图形之外的任何内容。 Index | Sub Call Type | Calls |Total AHT 0 | S
我希望在 Bokeh 绘图中使用 vbar 方法绘制条形图,其中 x 轴采用分类值而不是数字值。教程页面 ( http://docs.bokeh.org/en/latest/docs/referenc
我刚刚开始研究 Bokeh 的数据可视化,并且想知道使用 Figure.vbar() 与 Bar() 的优点/缺点,如果有人可以澄清一下。 最佳答案 bar 来自高级图表界面。它使您可以快速、轻松地访
我在创建 Bokeh 时遇到了一个小问题 vbar 在 0.13.0 来自数据帧 groupby count手术。回复 here是一个多层次的团体,而我的却不是。 发布后的更新 根据提供的答案添加了示
我正在尝试将 Bokeh 字形与 CSV 文件(或多个文件)中的数据结合使用。我知道我们可以使用 CSV 读取器导入 CSV,但是如何让 Bokeh 将其用于字形? from bokeh.plotti
我有一个 vbar 绑定(bind)到一个 ColumnDataSource,它根据一些小部件选择进行更新。如果我从 line_width=5 开始,我的初始数据看起来很棒。但是,当我更新图表时,x_
我想使用 Bokeh 绘制一个 vbar 图,其中 x 轴采用日期时间,y 轴采用分类值。 最初我尝试了如下圆图: import pandas as pd from datetime import d
这肯定会使条形宽度变宽,但最好将它们设置为“1 天”宽: source = ColumnDataSource(df) p = figure(x_axis_type="datetime", height
我是一名优秀的程序员,十分优秀!