我正在使用Bokeh的BokehJS部分,因为我正在构建一个更加面向生产的系统。 不幸的是,Bokeh的实际BokehJS部分似乎没有那么多记录,这使得很难找到所需的信息,例如如何格式化bokehJS对象的数据。
我要做的是制作一个简单的折线图,但不是只有一条线我想拥有多条线,而且可以制作描述每条线的图例。这是一个非常重要的情节,但我没有找到任何方法在bokehJS中做到这一点。 为了用单行创建一个图,我执行以下javascript:
Bokeh.Plotting.show(
Bokeh.Plotting.make_plot({type:'line'}, {x:[1,2],y:[4,5]}, {})
,'.mydivcontainer');
我如何改变这一点,以便我可以在同一个情节和传奇中有5行,基本上类似于用标准散景写的:
来自集合导入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)
非常感谢您的帮助
答案 0 :(得分:1)
确实,开发和记录JS接口已经落后于其他接口(主要是python,还有scala和Julia以及很快R)。我们计划改进这一点,但正如您可以想象的那样,有许多相互竞争的优先事项。
但我会提到另一个选项,以防它对你有用。可以从python创建绘图JS,然后直接使用JS。那就是你只使用python来设置,然后就可以把python扔掉了。您可以使用bokeh.embed
中的函数将您的python plot对象图转换为JS,您可以根据自己的喜好嵌入它。
使用最新版本的Bokeh,您还可以轻松地抓取绘图对象(例如数据源)以直接从JS更新绘图。例如,见:
https://github.com/bokeh/bokeh/blob/master/examples/embed/spectrogram/spectrogram.coffee#L187
答案 1 :(得分:0)
Bokeh.Plotting.show(
Bokeh.Plotting.make_plot([{type:'line'},{type:'line'}], [{x:[1,2],y:[4,5]},{x:[1,4],y:[2,5]}], {})
,'.mydivcontainer');
很棒:)