pandas DataFrame with Bokehをプロットしたいと思います。つまり、3行目に相当するBokehを探しています。
import pandas as pd
income_df = pd.read_csv("income_2013_dollars.csv", sep='\t', thousands=',')
income_df.plot(x="year")
現在、それを行う方法はありますか、それとも各y値を個別に渡す必要がありますか?
グラフの例が役立つ場合があります: https://github.com/bokeh/bokeh/tree/master/examples/charts
棒グラフが必要な場合は、次のようになります。
_from bokeh.charts import Bar
Bar(income_df, notebook=True).show() # assuming the index is corretly set on your df
_
同様に機能するLine
またはTimeSeries
が必要な場合があります。タイトルやラベルの追加など、詳細と構成については例を確認してください。
ノートブック、ファイル、サーバーなど、他の出力方法を使用できることに注意してください。こちらのドキュメントを参照してください: http://bokeh.pydata.org/en/latest/docs/user_guide/charts.html#generic-arguments
更新:(出力の表示方法について混乱してすみません)。グラフの表示タイプを指定する別の方法は、メソッドoutput_notebook()
、output_file("file.html")
、output_server()
を使用してから、showメソッドを使用することです。例えば
_from bokeh.charts import Bar
from bokeh.plotting import output_notebook, show
output_notebook()
bar = Bar(income_df)
show(bar)
_
ただし、できません次のことを行うことはできません
_from bokeh.charts import Bar
from bokeh.plotting import output_notebook
output_notebook()
Bar(income_df).show() # WILL GIVE YOU AN ERROR
_
2つのshowメソッドは異なります。
パンダを使用した棒グラフの作成に関する最新情報については、このユーザーガイドセクションを参照してください。
https://docs.bokeh.org/en/latest/docs/user_guide/categorical.html#pandas
例えば:
from bokeh.io import show, output_file
from bokeh.models import ColumnDataSource
from bokeh.palettes import Spectral5
from bokeh.plotting import figure
from bokeh.sampledata.autompg import autompg as df
from bokeh.transform import factor_cmap
output_file("groupby.html")
df.cyl = df.cyl.astype(str)
group = df.groupby('cyl')
source = ColumnDataSource(group)
cyl_cmap = factor_cmap('cyl', palette=Spectral5, factors=sorted(df.cyl.unique()))
p = figure(plot_height=350, x_range=group, title="MPG by # Cylinders",
toolbar_location=None, tools="")
p.vbar(x='cyl', top='mpg_mean', width=1, source=source,
line_color=cyl_cmap, fill_color=cyl_cmap)
p.y_range.start = 0
p.xgrid.grid_line_color = None
p.xaxis.axis_label = "some stuff"
p.xaxis.major_label_orientation = 1.2
p.outline_line_color = None
show(p)