web-dev-qa-db-ja.com

全体をプロットpandas DataFrame with Bokeh

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値を個別に渡す必要がありますか?

9
Anarcho-Chossid

グラフの例が役立つ場合があります: 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メソッドは異なります。

10
birdsarah

パンダを使用した棒グラフの作成に関する最新情報については、このユーザーガイドセクションを参照してください。

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)

enter image description here

0
bigreddot