|boke.ploting|インタフェースを使用して作成されたBokeh描画には、デフォルトツールのセットおよびデフォルトの視覚スタイルが付属していることに注意されたい。見 視覚属性スタイルの設定 描画視覚パターンのカスタマイズ方法に関する情報は、参照されたい 印刷ツールの構成 ツールの変更または指定に関する情報は、参照されたい。
絵に丸印を散布する場合は、ご利用ください circle() vt.方法、方法 Figure :
circle()
Figure
from bokeh.plotting import figure, output_file, show # output to static HTML file output_file("line.html") p = figure(plot_width=400, plot_height=400) # add a circle renderer with a size, color, and alpha p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="navy", alpha=0.5) # show the results show(p)
同様に、四角マークを散布する場合は、ご利用ください square() vt.方法、方法 Figure :
square()
from bokeh.plotting import figure, output_file, show # output to static HTML file output_file("square.html") p = figure(plot_width=400, plot_height=400) # add a square renderer with a size, color, and alpha p.square([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="olive", alpha=0.5) # show the results show(p)
Bokehには利用可能なタグタイプがたくさんあります。以下のリストのエントリをクリックすることで、すべてのタグタイプの詳細および例示的な描画を見ることができます。
asterisk()
circle_cross()
circle_dot()
circle_x()
circle_y()
cross()
dash()
dot()
diamond()
diamond_cross()
diamond_dot()
hex()
hex_dot()
inverted_triangle()
plus()
square_cross()
square_dot()
square_pin()
square_x()
triangle()
triangle_dot()
triangle_pin()
x()
y()
All the markers have the same set of properties: x, y, size (in screen units), and angle (radians by default). Additionally, circle() has a radius property that can be used to specify data-space units.
x
y
size
angle
radius
以下の例は、1次元シーケンスから単行字形を生成する方法を示す x そして y 使用 line() 字形方法:
line()
from bokeh.plotting import figure, output_file, show output_file("line.html") p = figure(plot_width=400, plot_height=400) # add a line renderer p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2) show(p)
いくつかのタイプのデータの場合、点を線形セグメントで接続するのではなく、データ点間に離散的なステップサイズを描画することがより適切である可能性がある。♪the step() これは、字形方法を使用して実現することができる。
step()
from bokeh.plotting import figure, output_file, show output_file("line.html") p = figure(plot_width=400, plot_height=400) # add a steps renderer p.step([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2, mode="center") show(p)
ステップサイズレベルは、x座標の前、後、またはx座標を中心にプロットすることができる。 mode パラメータ
mode
時々、複数のラインを一度に印刷するのが有用です。これは使用することで multi_line() 字形方法:
multi_line()
from bokeh.plotting import figure, output_file, show output_file("patch.html") p = figure(plot_width=400, plot_height=400) p.multi_line([[1, 3, 2], [3, 4, 6, 6]], [[2, 1, 4], [4, 7, 8, 5]], color=["firebrick", "navy"], alpha=[0.8, 0.3], line_width=4) show(p)
注釈
この字形は多くの他の字形とは異なる.これは,スカラー値の1次元リストや配列を受け取るのではなく,行ごとのxとy位置,パラメータxsとysの“リストリスト”を受け取る.MULTI_LINEは、色、Alpha、線幅などのパラメータの場合、各行にスカラー値またはスカラリストを有することも望ましい。同様に、データソース列は、スカラリストおよびスカラリストからなるColumnDataSourceを使用することができ、スカラリストの長さおよびリストの長さは一致しなければならない。
NaN 値を伝えることができます line() そして multi_line() 字形です。本例では、最終的に単一の論理線オブジェクトを得ることができ、これらのオブジェクトは、レンダリング時に複数の交差しないコンポーネントを有する:
NaN
from bokeh.plotting import figure, output_file, show output_file("line.html") p = figure(plot_width=400, plot_height=400) # add a line renderer with a NaN nan = float('nan') p.line([1, 2, 3, nan, 4, 5], [6, 7, 2, 4, 4, 5], line_width=2) show(p)
場合によっては、共通のインデックス上に整列されたライン(例えば、時系列のパーセンテージ)がスタックされることが望ましい。♪the vline_stack() そして hline_stack() これを実現するために便利な方法を用いることができる.これらの方法は明示的に提供されています ColumnDataSource (セクションを参照) データを提供する より多くの情報を得ることができます
vline_stack()
hline_stack()
ColumnDataSource
from bokeh.models import ColumnDataSource from bokeh.plotting import figure, output_file, show output_file("vline_stack.html") source = ColumnDataSource(data=dict( x=[1, 2, 3, 4, 5], y1=[1, 2, 4, 3, 4], y2=[1, 4, 2, 2, 3], )) p = figure(plot_width=400, plot_height=400) p.vline_stack(['y1', 'y2'], x='x', source=source) show(p)
矩形棒グラフ(通常は間隔を示す)を描画する際には、上述した2つのシステムの混合座標を用いた方が一般に便利である。Bokehは hbar() そして vbar() 字形はこの目的に用いる.
hbar()
vbar()
X座標、幅、トップ、底の端点を指定(中心)で垂直ストリップを描画する場合は、ご利用ください vbar() 字形関数:
from bokeh.plotting import figure, output_file, show output_file('vbar.html') p = figure(plot_width=400, plot_height=400) p.vbar(x=[1, 2, 3], width=0.5, bottom=0, top=[1.2, 2.5, 3.7], color="firebrick") show(p)
横棒グラフは、y座標、高さ、左右の端点を指定(中心)で描画する場合は、ご利用ください hbar() 字形関数:
from bokeh.plotting import figure, output_file, show output_file('hbar.html') p = figure(plot_width=400, plot_height=400) p.hbar(y=[1, 2, 3], height=0.5, left=0, right=[1.2, 2.5, 3.7], color="navy") show(p)
通常鉄筋を積む必要があります。これは使用することで vbar_stack() そして hbar_stack() 便利な方法です。これらの方法は明示的に提供されています ColumnDataSource (セクションを参照) データを提供する より多くの情報を得る)。
vbar_stack()
hbar_stack()
from bokeh.models import ColumnDataSource from bokeh.plotting import figure, output_file, show output_file("hbar_stack.html") source = ColumnDataSource(data=dict( y=[1, 2, 3, 4, 5], x1=[1, 2, 4, 3, 4], x2=[1, 4, 2, 2, 3], )) p = figure(plot_width=400, plot_height=400) p.hbar_stack(['x1', 'x2'], y='y', height=0.8, color=("grey", "lightgrey"), source=source) show(p)
積層鉄筋の他の例については、参照 分類データを処理する それがそうです。
To draw axis aligned rectangles ("quads") by specifying the left, right, top, and bottom positions, use the quad() glyph function:
left
right
top
bottom
quad()
from bokeh.plotting import figure, output_file, show output_file('rectangles.html') p = figure(plot_width=400, plot_height=400) p.quad(top=[2, 3, 4], bottom=[1, 2, 3], left=[1, 2, 3], right=[1.2, 2.5, 3.7], color="#B3DE69") show(p)
中心点、幅、高さ、角度を指定して任意の矩形を描く場合は、ご利用ください rect() 字形関数:
rect()
from math import pi from bokeh.plotting import figure, output_file, show output_file('rectangles_rotated.html') p = figure(plot_width=400, plot_height=400) p.rect(x=[1, 2, 3], y=[1, 2, 3], width=0.2, height=40, color="#CAB2D6", angle=pi/3, height_units="screen") show(p)
Bokehは六角形のタイルを描くことができ、これは通常入庫された凝集体を表示するために使用される。♪the hex_tile() 方法は1つを受け入れる size parameter to define the size of the hex grid, and axial coordinates どの寝台が表示されているかを指定する場合は、以下の操作を実行してください。
hex_tile()
import numpy as np from bokeh.io import output_file, show from bokeh.plotting import figure from bokeh.util.hex import axial_to_cartesian output_file("hex_coords.html") q = np.array([0, 0, 0, -1, -1, 1, 1]) r = np.array([0, -1, 1, 0, 1, -1, 0]) p = figure(plot_width=400, plot_height=400, toolbar_location=None) p.grid.visible = False p.hex_tile(q, r, size=1, fill_color=["firebrick"]*3 + ["navy"]*4, line_color="white", alpha=0.5) x, y = axial_to_cartesian(q, r, 1, "pointytop") p.text(x, y, text=["(%d, %d)" % (q,r) for (q, r) in zip(q, r)], text_baseline="middle", text_align="center") show(p)
次のより現実的な例で使用されています hexbin() 関数を描画し、カラーマッピングカウントを描画します。
hexbin()
import numpy as np from bokeh.io import output_file, show from bokeh.plotting import figure from bokeh.transform import linear_cmap from bokeh.util.hex import hexbin n = 50000 x = np.random.standard_normal(n) y = np.random.standard_normal(n) bins = hexbin(x, y, 0.1) p = figure(tools="wheel_zoom,reset", match_aspect=True, background_fill_color='#440154') p.grid.visible = False p.hex_tile(q="q", r="r", size=0.1, line_color=None, source=bins, fill_color=linear_cmap('counts', 'Viridis256', 0, max(bins.counts))) output_file("hex_tile.html") show(p)
呼び出して hexbin() vt.方法、方法 Figure それがそうです。
有向領域は,共通インデックスを共有する2つの系列間のパディング領域である.例えば、垂直方向領域は1つである x 座標配列と2つのy座標配列は y1 そして y2 これは充填されます
以下のコマンドを使用して、垂直方向に2つの整列された系列間の単一の指向性領域を作成することができる varea() 水平方向に使用したり harea() それがそうです。
varea()
harea()
from bokeh.plotting import figure, output_file, show output_file("varea.html") p = figure(plot_width=400, plot_height=400) p.varea(x=[1, 2, 3, 4, 5], y1=[2, 6, 4, 3, 5], y2=[1, 4, 2, 2, 3]) show(p)
一般に、配向領域をスタックする必要がある。これは使用することで varea_stack() そして harea_stack() 便利な方法です。これらの方法は明示的に提供されています ColumnDataSource (セクションを参照) データを提供する より多くの情報を得る)。
varea_stack()
harea_stack()
from bokeh.models import ColumnDataSource from bokeh.plotting import figure, output_file, show output_file("varea_stack.html") source = ColumnDataSource(data=dict( x=[1, 2, 3, 4, 5], y1=[1, 2, 4, 3, 4], y2=[1, 4, 2, 2, 3], )) p = figure(plot_width=400, plot_height=400) p.varea_stack(['y1', 'y2'], x='x', color=("grey", "lightgrey"), source=source) show(p)
以下の例は、1次元シーケンスから単一のポリゴンパッチ字形を生成する方法を示す x そして y 使用 patch() 字形方法:
patch()
from bokeh.plotting import figure, output_file, show output_file("patch.html") p = figure(plot_width=400, plot_height=400) # add a patch renderer with an alpha and line width p.patch([1, 2, 3, 4, 5], [6, 7, 8, 7, 3], alpha=0.5, line_width=2) show(p)
時々、複数のポリゴンパッチを一度に印刷することが非常に有用である。これは使用することで patches() 字形方法:
patches()
from bokeh.plotting import figure, output_file, show output_file("patch.html") p = figure(plot_width=400, plot_height=400) p.patches([[1, 3, 2], [3, 4, 6, 6]], [[2, 1, 4], [4, 7, 8, 5]], color=["firebrick", "navy"], alpha=[0.8, 0.3], line_width=2) show(p)
この字形は多くの他の字形とは異なる.これは,スカラー値の1次元リストや配列を受け取るのではなく,各スライスのxとy位置,パラメータxsとysの“リストリスト”を受け取る.色、アルファ、線幅などのパラメータの場合、パッチはまた、各パッチのスカラ値またはスカラリストが望ましい。同様に、スカラリストおよびスカラリストからなるColumnDataSourceを使用することができ、スカラリストの長さとリストの長さとが一致しなければならない。
Just as with line() and multi_line(), NaN values can be passed to patch() and patches() glyphs. In this case, you end up with single logical patch objects, that have multiple disjoint components when rendered:
from bokeh.plotting import figure, output_file, show output_file("patch.html") p = figure(plot_width=400, plot_height=400) # add a patch renderer with a NaN value nan = float('nan') p.patch([1, 2, 3, nan, 4, 5, 6], [6, 7, 5, nan, 7, 3, 6], alpha=0.5, line_width=2) show(p)
警告
以下のツールを用いてパッチオブジェクトのヒットテストを行います NaN 現在値はサポートされていません。
♪the multi_polygons() 字形は入れ子を用いてポリゴンに関する様々な情報を受け取る.どのようなものでも patches() このように表現することもできます multi_polygons() しかし他にも multi_polygons() 各ポリゴン内の穴をレンダリングすることができる.
multi_polygons()
この字形は多くの他の字形とは異なる.これは,スカラー値の1次元リストや配列を受け取るのではなく,外部と各ポリゴンの穴を構成する3次xとy位置ネストリストを受け取る.色,Alpha,線幅などのパラメータに対して,MultiPolygonsは項目ごとにスカラー値やスカラーリストを持つことが望ましい.同様に、3次ネストリストおよびスカラリストからなるColumnDataSourceを使用することができ、スカラリストの長さとトップリストの長さとが一致しなければならない。
以下の例は、3次ネストされた1次元シーケンスから単一のポリゴン字形を生成する方法を示す x そして y 使用 multi_polygons() 字形方法:
from bokeh.plotting import figure, output_file, show output_file('multipolygon_simple.html') p = figure(plot_width=400, plot_height=400) p.multi_polygons(xs=[[[[1, 1, 2, 2]]]], ys=[[[[3, 4, 4, 3]]]]) show(p)
以下の例は、以下の3つのシーケンスから孔付き単一面をどのように生成するかを示す x そして y ポイント。第1のシーケンスはポリゴンの外部を表し、以下のシーケンスは穴を表す。
from bokeh.plotting import figure, output_file, show output_file('multipolygon_with_holes.html') p = figure(plot_width=400, plot_height=400) p.multi_polygons(xs=[[[ [1, 2, 2, 1], [1.2, 1.6, 1.6], [1.8, 1.8, 1.6] ]]], ys=[[[ [3, 3, 4, 4], [3.2, 3.6, 3.2], [3.4, 3.8, 3.8] ]]]) show(p)
1つの概念ポリゴンが複数のポリゴン幾何図形からなる場合がある.以下の例は,複数の系列から多重ポリゴン字形を生成する方法を示す. x そして y ポイント。シーケンス内の各項目は、多重ポリゴンの一部を表す。
from bokeh.plotting import figure, output_file, show output_file('multipolygon_with_separate_parts.html') p = figure(plot_width=400, plot_height=400) p.multi_polygons(xs=[[[ [1, 1, 2, 2], [1.2, 1.6, 1.6], [1.8, 1.8, 1.6] ], [ [3, 4, 3] ]]], ys=[[[ [4, 3, 3, 4], [3.2, 3.2, 3.6], [3.4, 3.8, 3.8] ], [ [1, 1, 3] ]]]) show(p)
トップ階層入れ子は,各多重ポリゴンを他の多重ポリゴンから分離するために用いられる.各多重ポリゴンは、データソース内の1行と見なすことができ、対応するラベルまたは色を有することができる。
from bokeh.plotting import figure, output_file, show output_file('multipolygons.html') p = figure(plot_width=400, plot_height=400) p.multi_polygons( xs=[ [[ [1, 1, 2, 2], [1.2, 1.6, 1.6], [1.8, 1.8, 1.6] ], [ [3, 3, 4] ]], [[ [1, 2, 2, 1], [1.3, 1.3, 1.7, 1.7] ]]], ys=[ [[ [4, 3, 3, 4], [3.2, 3.2, 3.6], [3.4, 3.8, 3.8] ], [ [1, 3, 1] ]], [[ [1, 1, 2, 2], [1.3, 1.7, 1.7, 1.3] ]]], color=['blue', 'red']) show(p)
♪the ellipse() Glyphメソッドが受け取る属性と rect() しかし楕円形状をレンダリングします
ellipse()
from math import pi from bokeh.plotting import figure, output_file, show output_file('ellipses.html') p = figure(plot_width=400, plot_height=400) p.ellipse(x=[1, 2, 3], y=[1, 2, 3], width=[0.2, 0.3, 0.1], height=0.3, angle=pi/3, color="#CAB2D6") show(p)
You can display images on Bokeh plots using the image(), image_rgba(), and image_url() glyph methods. It is possible to use a hover tool with image glyphs to allow for interactive inspection of the values of any pixel. For more information on how to enable hover with images, please consult the Image Hover section of the User's Guide.
image()
image_rgba()
image_url()
ここでの第1の例は、以下のコマンドを使用して、Bokehマップに元のRGBAデータ中の画像を表示する方法を示す image_rgba() :
import numpy as np from bokeh.plotting import figure, output_file, show # create an array of RGBA data N = 20 img = np.empty((N, N), dtype=np.uint32) view = img.view(dtype=np.uint8).reshape((N, N, 4)) for i in range(N): for j in range(N): view[i, j, 0] = int(255 * i / N) view[i, j, 1] = 158 view[i, j, 2] = int(255 * j / N) view[i, j, 3] = 255 output_file("image_rgba.html") p = figure(plot_width=400, plot_height=400, x_range=(0, 10), y_range=(0, 10)) p.image_rgba(image=[img], x=[0], y=[0], dw=[10], dh=[10]) show(p)
グループを提供することもできます スカラー値. また,Bokehにブラウザ中のデータを自動的にカラーマッピングさせる方法を用いた. image() 字形方法。次の例は、この動作をどのように実行するかを示す。
import numpy as np from bokeh.plotting import figure, output_file, show output_file("image.html", title="image.py example") x = np.linspace(0, 10, 250) y = np.linspace(0, 10, 250) xx, yy = np.meshgrid(x, y) d = np.sin(xx)*np.cos(yy) p = figure(plot_width=400, plot_height=400) p.x_range.range_padding = p.y_range.range_padding = 0 p.image(image=[d], x=0, y=0, dw=10, dh=10, palette="Spectral11", level="image") p.grid.grid_line_width = 0.5 show(p)
なお、上記の例では、レンダリングレベルを設定しています "image" それがそうです。通常は全ての字を描きます 上に グリッド線ですが、設定します "image" レンダリングレベルはレンダリングに使用できます 下にある グリッド線です。
"image"
複数の個々の線分を一度に描画できることが非常に有用である場合がある.Bokehは segment() そして ray() これらを提示するための字形方法。
segment()
ray()
The segment() function accepts start points x0, y0 and end points x1 and y1 and renders segments between these:
x0
y0
x1
y1
from bokeh.plotting import figure, show p = figure(plot_width=400, plot_height=400) p.segment(x0=[1, 2, 3], y0=[1, 2, 3], x1=[1.2, 2.4, 3.1], y1=[1.2, 2.5, 3.7], color="#F4A582", line_width=3) show(p)
The ray() function accepts start points x, y with a length (in screen units) and an angle. The default angle_units are "rad" but can also be changed to "deg". To have an "infinite" ray, that always extends to the edge of the plot, specify 0 for the length:
length
angle_units
"rad"
"deg"
0
from bokeh.plotting import figure, show p = figure(plot_width=400, plot_height=400) p.ray(x=[1, 2, 3], y=[1, 2, 3], length=45, angle=[30, 45, 60], angle_units="deg", color="#FB8072", line_width=2) show(p)
To draw a simple line arc, Bokeh provides the arc() glyph method, which accepts radius, start_angle, and end_angle to determine position. Additionally, the direction property determines whether to render clockwise ("clock") or anti-clockwise ("anticlock") between the start and end angles.
arc()
start_angle
end_angle
direction
"clock"
"anticlock"
from bokeh.plotting import figure, show p = figure(plot_width=400, plot_height=400) p.arc(x=[1, 2, 3], y=[1, 2, 3], radius=0.1, start_angle=0.4, end_angle=4.8, color="navy") show(p)
♪the wedge() Glyphメソッドが受け取る属性と arc() しかし充填された楔形をレンダリングするようになります
wedge()
from bokeh.plotting import figure, show p = figure(plot_width=400, plot_height=400) p.wedge(x=[1, 2, 3], y=[1, 2, 3], radius=0.2, start_angle=0.4, end_angle=4.8, color="firebrick", alpha=0.6, direction="clock") show(p)
♪the annular_wedge() 字形法は arc() しかし、充填領域を描画します。それは1つの inner_radius そして outer_radius ただ…。 radius :
annular_wedge()
inner_radius
outer_radius
from bokeh.plotting import figure, show p = figure(plot_width=400, plot_height=400) p.annular_wedge(x=[1, 2, 3], y=[1, 2, 3], inner_radius=0.1, outer_radius=0.25, start_angle=0.4, end_angle=4.8, color="green", alpha=0.6) show(p)
最後に、 annulus() 字形方法、それは受け入れます inner_radius そして outer_radius 中実円環を描画するために使用することができる:
annulus()
from bokeh.plotting import figure, show p = figure(plot_width=400, plot_height=400) p.annulus(x=[1, 2, 3], y=[1, 2, 3], inner_radius=0.1, outer_radius=0.25, color="orange", alpha=0.6) show(p)
Bokehはまた提供します quadratic() そして bezier() パラメータ化二次と三次曲線の字形化方法を作成する。これらの事情はまれである reference documentation もっと細かいことを知っています。
quadratic()
bezier()
単一の描画上で複数のフォントを組み合わせることは,単一の描画上で複数のフォントメソッドを呼び出す問題である. Figure :
from bokeh.plotting import figure, output_file, show x = [1, 2, 3, 4, 5] y = [6, 7, 8, 7, 3] output_file("multiple.html") p = figure(plot_width=400, plot_height=400) # add both a line and circles on the same plot p.line(x, y, line_width=2) p.circle(x, y, fill_color="white", size=8) show(p)
この原則は通常|boke.ploting|におけるすべてのフォントメソッドに適用される.任意の数の字形をBokeh図に追加することができる.
デフォルトでは,Bokehはデータに近づくように描画されたデータ境界を自動的に設定することを試みる.時々、あなたは図面の範囲を明確に設定する必要があるかもしれない。これは設定することで x_range あるいは…。 y_range 属性使用 Range1d オブジェクト、そのオブジェクト提供 スタートアップ そして end ご希望の範囲内の点:
x_range
y_range
Range1d
p.x_range = Range1d(0, 100)
便宜上。 figure() 関数は受け入れられます (開始、終了) として x_range あるいは…。 y_range パラメータです。以下の例は、設定範囲の2つの方法を示す。
figure()
from bokeh.models import Range1d from bokeh.plotting import figure, output_file, show output_file("title.html") # create a new plot with a range set with a tuple p = figure(plot_width=400, plot_height=400, x_range=(0, 20)) # set a range using a Range1d p.y_range = Range1d(0, 15) p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) show(p)
範囲も一つあります bounds 属性により、ユーザの平行移動/スケーリングを望まない描画制限を指定することができます。
bounds
# set a range using a Range1d p.y_range = Range1d(0, 15, bounds=(0, None))
上記のすべての例は、デフォルトの線形軸を使用する。この軸は,デジタルデータを線形割合で表示する必要がある多くの描画に適している.他の場合、分類データがある場合や、日付やログスケールでデジタルデータを表示する必要がある場合があります。本節では,|boke.ploting|インタフェースを用いた場合に軸タイプをどのように指定するかについて述べる.
カテゴリ軸は指定することで FactorRange 描画範囲のうちの1つ(または1に変換する係数リスト)である。以下は簡単な例ですが、完全な詳細についてはご参照ください 分類データを処理する それがそうです。
FactorRange
from bokeh.plotting import figure, output_file, show factors = ["a", "b", "c", "d", "e", "f", "g", "h"] x = [50, 40, 65, 10, 25, 37, 80, 60] output_file("categorical.html") p = figure(y_range=factors) p.circle(x, factors, size=15, fill_color="orange", line_color="green", line_width=3) show(p)
時系列データまたは日付または時間に関する任意のデータを処理する際には、異なる日付および時間スケールに適したラベルを表示することができる軸を有することが望ましい。
この例は、実際の時系列データをより容易に提示するために、ネットワーク接続を必要とし、オープンソースのPandasライブラリに依存する。
私たちはどのように使うかを理解しました figure() |boke.ploting|インタフェースを用いて描画の関数を作成する.この関数は受け入れます x_axis_type そして y_axis_type 論拠として。日時軸のご指定は、お渡しください "datetime" この2つのパラメータの値を得ることができます
x_axis_type
y_axis_type
"datetime"
import pandas as pd from bokeh.plotting import figure, output_file, show from bokeh.sampledata.stocks import AAPL df = pd.DataFrame(AAPL) df['date'] = pd.to_datetime(df['date']) output_file("datetime.html") # create a new plot with a datetime axis type p = figure(plot_width=800, plot_height=250, x_axis_type="datetime") p.line(df['date'], df['close'], color='navy', alpha=0.5) show(p)
Bokehの将来のバージョンは、日時軸のタイミングで状況を自動検出し、デフォルトでこれらの状況を自動的に追加しようと試みます。
指数的に増加または数桁のデータを処理する際には、通常、対数スケールに1つの軸を設定する必要がある。対数目盛りを2つの軸上で使用することが望ましい場合、別のシーンは、べき乗関係を有するデータを描画することに関する。
上に見ているように figure() 関数受容 x_axis_type そして y_axis_type 論拠として。対数軸を指定しますので、お渡しください "log" この2つのパラメータの値を得ることができます
"log"
デフォルトの場合,正の値データに適応するように対数軸範囲を計算する.ご自分の範囲を設定するには、ご参照ください 範囲を設ける それがそうです。
from bokeh.plotting import figure, output_file, show x = [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0] y = [10**xx for xx in x] output_file("log.html") # create a new plot with a log axis type p = figure(plot_width=400, plot_height=400, y_axis_type="log") p.line(x, y, line_width=2) p.circle(x, y, fill_color="white", size=8) show(p)
異なる範囲を表す複数の軸を単一の描画に追加することができる。この操作を実行するためには,“Extra”の名前範囲を用いて描画を構成してください extra_x_range そして extra_y_range 財産です。そして,新たな字形手法を追加する際にこれらの命名範囲を引用することも可能であり,利用可能である add_layout 開け方 Plot それがそうです。以下に例を示す.
extra_x_range
extra_y_range
add_layout
Plot
from numpy import arange, linspace, pi, sin from bokeh.models import LinearAxis, Range1d from bokeh.plotting import figure, output_file, show x = arange(-2*pi, 2*pi, 0.1) y = sin(x) y2 = linspace(0, 100, len(y)) output_file("twin_axis.html") p = figure(x_range=(-6.5, 6.5), y_range=(-1.1, 1.1)) p.circle(x, y, color="red") p.extra_y_ranges = {"foo": Range1d(start=0, end=100)} p.circle(x, y2, color="blue", y_range_name="foo") p.add_layout(LinearAxis(y_range_name="foo"), 'left') show(p)