javascript - bokehjs 中多行的数据格式

标签 javascript plot visualization bokeh continuum

我只使用 Bokeh 的 BokehJS 部分,因为我正在构建一个更加面向生产的系统。 不幸的是,Bokeh 的实际 BokehJS 部分似乎没有太多文档,这使得很难找到所需的信息,例如如何格式化 bokehJS 对象的数据。

我想做的是制作一个简单的线图,但是我不想只有一条线,而是想要多条线,并且可以制作描述每条线的图例。这是一个非常基本的情节,但是我没有找到任何方法在 bokehJS 中做到这一点。 为了用单行绘制一个图,我执行以下 JavaScript:

    Bokeh.Plotting.show(
        Bokeh.Plotting.make_plot({type:'line'}, {x:[1,2],y:[4,5]}, {})
        ,'.mydivcontainer');

我如何改变它,以便我可以在同一个图中有 5 条线以及图例,基本上类似于用标准 Bokeh 编写的:

从集合导入 OrderedDict 将 pandas 导入为 pd

AAPL = pd.read_csv("aapl.csv", parse_dates=["Date"])
MSFT = pd.read_csv( "msft.csv", parse_dates=["Date"])
IBM = pd.read_csv( "ibm.csv", parse_dates=["Date"])

xyvalues = OrderedDict(
    AAPL = AAPL[("Date", "Adj Close")],
    MSFT = MSFT[("Date", "Adj Close")],
    IBM  = IBM[("Date", "Adj Close")],
)
df = pd.concat(xyvalues, axis=1, names=["l0", "l1"])

from bokeh.charts import TimeSeries
ts = TimeSeries(
    df, title="timeseries, pd_input",
    filename="stocks_timeseries.html")
ts.legend("top_left").show()

(摘自发行说明:http://continuum.io/blog/bokeh-0.6)

提前非常感谢您的帮助

最佳答案

确实,JS 接口(interface)的开发和文档化已经落后于其他接口(interface)(主要是 python,还有 scala 和 Julia,很快还有 R)。我们计划对此进行改进,但正如您可以想象的那样,存在许多相互竞争的优先事项。

但我会提到另一个选项,以防它对您有用。可以从 python 创建绘图 JS,然后直接使用 JS。那就是你只用python来设置东西,然后你就可以扔掉python了。您可以使用 bokeh.embed 中的函数将 Python 绘图对象图转换为 JS,您可以根据需要嵌入该 JS。

使用最新版本的 Bokeh,您还可以轻松获取绘图对象(例如数据源)以直接从 JS 更新绘图。例如,参见:

https://github.com/bokeh/bokeh/blob/master/examples/embed/spectrogram/spectrogram.coffee#L187

关于javascript - bokehjs 中多行的数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27246829/

相关文章:

python matplotlib Agg 与交互式绘图和 tight_layout

r - R 中按组划分的带状图

javascript - 悬停时包括有关对象 PVIZ 的更多详细信息

python - 在 3 点之间绘制箭头

rlattice - bwplot后水平abline的位置错误

r - 2D 可视化中的分散点

javascript - 在 javascript/NodeJS 中通过 WebSocket 发送 pong 帧?

javascript - 如何避免同一事件的重复执行?

javascript - 在 JQuery 文件中获取 WordPress 帖子 ID

javascript - 将 DatePicker 添加到模态时出现问题 - 在背景中显示