[データ サイエンス] ボケ [ボケ描画、データ、描画、レンダラとカスタム ビジュアライゼーション、出力とエクスポート、グラフィックスの表示または保存を使用する]


1. ボケを利用した描画

  Bokeh は、Python用のインタラクティブなビジュアル ライブラリです。大規模なデータセットの高性能な視覚化を生成してブラウザーに表示しますBokeh の中間層の共通 bokeh.plotting インターフェイスは、主にデータアイコンの
ここに画像の説明を挿入します
  2 つのコンポーネントで構成されます
ここに画像の説明を挿入します
  bokeh.plotting インターフェイスを使用して描画するための基本的な手順は次のとおりです。:
  1.データを準備します
  Python リスト、Numpy 配列、Pandas データ フレーム、またはその他のシーケンス値
  2.グラフィックを作成するデータを準備します
  3.レンダラーをデータに追加し、視覚化チャートをカスタマイズします
  4.生成される出力のタイプを指定します
  5.ビューを表示するか、結果を保存します

>>> from bokeh.plotting import figure
>>> from bokeh.io import output_file, show
>>> x = [1, 2, 3, 4, 5]
>>> y = [6, 7, 2, 4, 5]
>>> p = figure(title="simple line example", x_axis_label='x', y_axis_label='y')
>>> p.line(x, y, legend="Temp.", line_width=2)
>>> output_file("lines.html")
>>> show(p)

2. データ

  通常、Bokeh はデータをバックグラウンドで列データ ソースに変換しますが、手動変換

>>> import numpy as np
>>> import pandas as pd
# 首先需要导入必要的库(NumPy和Pandas)
>>> df = pd.DataFrame(np.array([[33.9,4,65, 'US'],[32.4,4,66, 'Asia'],[21.4,4,109, 'Europe']]), columns=['mpg','cyl', 'hp', 'origin'],index=['Toyota', 'Fiat', 'Volvo'])
>>> from bokeh.models import ColumnDataSource
# 然后创建一个包含数据的数据框(DataFrame)
>>> cds_df = ColumnDataSource(df)
# 通过将数据框传递给ColumnDataSource函数,将数据框转换为列数据源对象

上記ではNumPyPandas  を使用しています自動車関連データを含むデータフレームを作成しました次に、データ フレームを ColumnDataSource 関数に渡して、データ フレームを列データ ソース オブジェクト cds_df に変換しますこの列データ ソース オブジェクトを使用して、Bokeh ビジュアライゼーションを作成しチャート、グラフなどの他のボケ コンポーネントと一緒に使用します。


3. 描画

  まず、Bokeh を使用して 3 つのグラフィック オブジェクトを作成します

>>> from bokeh.plotting import figure
>>> p1 = figure(plot_width=300,tools='pan,box_zoom')
>>> p2 = figure(plot_width=300, plot_height=300, x_range=(0, 8), y_range=(0, 8))
>>> p3 = figure() 

  これらのグラフィック オブジェクトを通じて、次のことができます。その他のBokehを利用した機能や手法 データ、グラフの種類などを追加し、データを視覚化します


4. レンダラーとカスタム ビジュアライゼーション

4.1 アイコン

4.1.1 スキャッターマーカー

  ボケを使用してオブジェクトをグラフ化する散布図と正方形プロットを追加する

>>> p1.circle(np.array([1,2,3]), np.array([3,2,1]), fill_color='white')
>>> p2.square(np.array([1.5,3.5,5.5]), [1,4,3], 

ここに画像の説明を挿入します


4.1.2 線アイコン

  ボケを使用してオブジェクトをグラフ化する折れ線グラフを追加

>>> p1.line([1,2,3,4], [3,4,5,6], line_width=2)
# 使用p1.line()函数将一条直线段添加到图形中。这里传入的参数为x坐标和y坐标的数组:[1,2,3,4]和[3,4,5,6]
# 通过设置line_width=2,将线段的宽度设置为2个像素
>>> p2.multi_line(pd.DataFrame([[1,2,3],[5,6,7]]),pd.DataFrame([[3,4,5],[3,2,1]]),color="blue")
# 使用p2.multi_line()函数将多条线段组成的线段图添加到图形中。这里传入的参数为两个DataFrame对象:第一个DataFrame对象包含x坐标的数据,第二个DataFrame对象包含y坐标的数据
# x坐标的DataFrame为pd.DataFrame([[1,2,3],[5,6,7]]),y坐标的DataFrame为pd.DataFrame([[3,4,5],[3,2,1]])。通过设置color="blue",将线段的颜色设置为蓝色

ここに画像の説明を挿入します


4.2 カスタムアイコン

4.2.1 アイコンの選択と反転

  Bokeh を使用してグラフ オブジェクトを作成し、グラフに散布図を追加します

>>> p = figure(tools='box_select')
>>> p.circle('mpg', 'cyl', source=cds_df, selection_color='red', nonselection_alpha=0.1)

  上記では、マーキー選択ツールを使用してグラフィック オブジェクトを作成し、そのグラフィックに散布図を追加しています散布図の x 座標は mpg で、y 座標は cyl です。散布図のデータ ソースは、 cds_df という名前の ColumnDataSource オブジェクトです選択された散布点の色は赤で、選択されていない散布点の透明度は 0.1 です。
ここに画像の説明を挿入します


4.2.2 描画エリア内

  Bokeh を使用してグラフィックス オブジェクトにホバー ツールを追加する

>>> from bokeh.models import HoverTool
# 首先,从 bokeh.models 模块导入 HoverTool 类
>>> hover = HoverTool(tooltips=None, mode='vline') 
# 使用 HoverTool() 函数创建一个悬停工具对象,并将其赋值给变量 hover
# 通过设置 tooltips=None 将工具提示设置为空,即不显示任何工具提示信息。通过设置 mode='vline' 将悬停模式设置为垂直线模式
>>>> p3.add_tools(hover)
# 使用 add_tools() 方法将悬停工具添加到图形对象 p3 中

  上記のコードを実行すると、ホバー ツール オブジェクトが作成されグラフィックス オブジェクト p3 に追加されますホバー ツールは垂直線モードで表示され、ツールチップ情報は表示されません。
ここに画像の説明を挿入します


4.2.3 カラーテーブル

>>> from bokeh.models import CategoricalColorMapper
>>> color_mapper = CategoricalColorMapper(factors=['US', 'Asia', 'Europe'],palette=['blue', 'red', 'green'])
>>> p3.circle('mpg', 'cyl', source=cds_df,color=dict(field='origin', transform=color_mapper),legend='Origin')

  上記のコードを実行すると、散布図を作成し、CategoricalColorMapper を使用して、さまざまなカテゴリのデータ ポイントをさまざまな色にマッピングします。カラー マップは、「 origin 」フィールドの値に基づいてマッピングされ、凡例を使用して各カテゴリを表示します。
ここに画像の説明を挿入します


4.3 凡例の場所

4.3.1 描画エリア内

>>> p.legend.location = 'bottom_left'

4.3.2 描画エリア外

>>> from bokeh.models import Legend
>>> r1 = p2.asterisk(np.array([1,2,3]), np.array([3,2,1])
>>> r2 = p2.line([1,2,3,4], [3,4,5,6])
>>> legend = Legend(items=[("One" ,[p1, r1]),("Two",[r2])], 
 location=(0, -30))
>>> p.add_layout(legend, 'right')

4.4 凡例の方向

>>> p.legend.orientation = "horizontal"
>>> p.legend.orientation = "vertical"

4.5 凡例の背景と枠線

>>> p.legend.border_line_color = "navy"
>>> p.legend.background_fill_color = "white"

4.6 行と列のレイアウト

4.6.1 ライン

>>> from bokeh.layouts import row
>>> layout = row(p1,p2,p3)

4.6.2 カラム

>>> from bokeh.layouts import columns
>>> layout = column(p1,p2,p3)

4.6.3 行と列のネスト

>>>layout = row(column(p1,p2), p3)

4.7 グリッドレイアウト

>>> from bokeh.layouts import gridplot
>>> row1 = [p1,p2]
>>> row2 = [p3]
>>> layout = gridplot([[p1,p2],[p3]])

4.8 ラベルのレイアウト

>>> from bokeh.models.widgets import Panel, Tabs
>>> tab1 = Panel(child=p1, title="tab1")
>>> tab2 = Panel(child=p2, title="tab2")
>>> layout = Tabs(tabs=[tab1, tab2])

4.9 リンク図

4.9.1 リンク軸

>>> p2.x_range = p1.x_range
>>> p2.y_range = p1.y_range

4.9.2 リンクブラッシング

>>> p4 = figure(plot_width = 100, tools='box_select,lasso_select')
>>> p4.circle('mpg', 'cyl', source=cds_df)
>>> p5 = figure(plot_width = 200, tools='box_select,lasso_select')
>>> p5.circle('mpg', 'hp', source=cds_df)
>>> layout = row(p4,p5)

5. 出力とエクスポート

5.1 ノートブック

  Jupyter Notebook の出力に Bokeh を使用します。

>>> from bokeh.io import output_notebook, show
# 从 bokeh.io 模块导入 output_notebook 和 show 函数
>>> output_notebook()
# 用 output_notebook() 函数将 Bokeh 的输出设置为在 Jupyter Notebook 中显示。这样可以确保图形将直接嵌入到笔记本中,并且可以在笔记本中进行交互和查看

  ボケ グラフィックスはJupyter Notebook に埋め込まれて表示され、ノートブック内で操作したり表示したりできます


5.2 HTML

5.2.1 オフライン HTML

  ボケ味を利用するfile_html関数 グラフィックを HTML ファイルに変換します

>>> from bokeh.embed import file_html
>>> from bokeh.resources import CDN 
>>> html = file_html(p, CDN, "my_plot")

  上記のコードを実行すると、p グラフィックス オブジェクトが HTML コードを含む文字列に変換されます。この HTML コードは、ファイルに保存したり、Web ページに統合して、Bokeh グラフィックを表示および操作したりできます

>>> from bokeh.io import output_file, show
>>> output_file('my_bar_chart.html', mode='cdn')

5.2.2 コンポーネント

  ボケ味を利用するコンポーネント機能 グラフィックを JavaScript および HTML 区切り文字に変換します

>>> from bokeh.embed import components
>>> script, div = components(p)

5.3 PNG

  ボケ味を利用するエクスポートpng関数 グラフィックを PNG 形式の画像ファイルとして保存します

>>> from bokeh.io import export_png
>>> export_png(p, filename="plot.png")

  グラフィック オブジェクト p は、「plot.png」という名前の PNG 画像ファイルとして保存されます。ファイルは現在の作業ディレクトリまたは指定したパスに保存されます。保存場所と名前は、別のファイル名とパスを指定することで変更できます


5.4 SVG

  ボケ味を利用するエクスポート_svgs関数 グラフィックを SVG 形式のベクター ファイルとして保存します

>>> from bokeh.io import export_svgs
>>> p.output_backend = "svg"
>>> export_svgs(p, filename="plot.svg")

  グラフィック オブジェクト p は、「plot.svg」という名前の SVG 形式のベクター ファイルとして保存されます。ファイルは現在の作業ディレクトリまたは指定したパスに保存されます。別のファイル名とパスを指定することで、保存場所と名前を変更できます。グラフィックが非常に複雑な場合は、複数の SVG ファイルが生成されることがあります。


6. グラフィックの表示または保存

  ボケ味を使用できます機能を表示そして保存機能グラフィック オブジェクト p1 およびレイアウトを表示および保存します

>>> show(p1) >>> show(layout) 
>>> save(p1) >>> save(layout)

おすすめ

転載: blog.csdn.net/m0_65748531/article/details/132844405