1

より生産指向のシステムを構築しているため、Bokeh の BokehJS 部分のみを使用しています。残念ながら、Bokeh の実際の BokehJS 部分はあまり文書化されていないようです。そのため、bokehJS オブジェクトのデータをフォーマットする方法など、必要な情報を見つけるのが難しくなっています。

私がやろうとしているのは、単純な折れ線グラフを作成することですが、1 行だけではなく、複数の行を作成し、各行を説明する凡例を作成する可能性があります。これは非常に基本的なプロットですが、bokehJS でこれを行う方法が見つかりませんでした。1 行でプロットを作成するために、次の JavaScript を実行します。

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

これを変更して、同じプロットと凡例に 5 行を含めることができるようにするにはどうすればよいですか。

from collections import OrderedDict import pandas as 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 )

どうぞよろしくお願いいたします。

4

2 に答える 2

1

JS インターフェースの開発と文書化が他のインターフェース (主に Python、しかし scala と Julia、そしてすぐに R) に遅れをとっていることは間違いありません。これを改善する予定ですが、ご想像のとおり、競合する優先事項がたくさんあります。

しかし、それがあなたにとって役に立つ場合に備えて、別のオプションについて言及します。Python からプロット JS を作成し、JS を直接使用することができます。つまり、Python を使用して設定を行うだけで、Python を捨てることができます。の関数を使用しbokeh.embedて、Python プロット オブジェクト グラフを好きなように埋め込むことができる JS に変換できます。

Bokeh の最新バージョンでは、プロット オブジェクト (データ ソースなど) を簡単に取得して、JS から直接プロットを更新することもできます。たとえば、次を参照してください。

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

于 2014-12-02T22:04:08.027 に答える
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');

偉大な :)

于 2014-12-04T23:03:55.807 に答える