フッターコンテンツにスキップ
PYTHONヘルプ

HoloViews Python(開発者向けのしくみ)

HoloViewsは、データ可視化をシンプルかつ直感的にする柔軟なPythonライブラリです。科学計算スタックとの緊密な統合により、Matplotlib、Bokeh、Plotlyなどのさまざまなバックエンドを使用して、最小限のコードでインタラクティブな可視化を作成できます。 開発者はHoloViewsを設計し、手作業によるプロット作業をなくし、データ分析ワークフローにシームレスに適合するインタラクティブで高度にカスタマイズ可能なビジュアライゼーションを簡単に作成できるようにしました。

IronPDFはPDFドキュメントの作成、編集、操作に使われるPythonライブラリです。 HTMLからPDFへの変換、コンテンツの編集、セキュリティの実装、注釈やフォームの追加が可能です。 HoloViewsとIronPDFを統合することで、ユーザーはIronPDFを使って作成したプロフェッショナルなPDFレポートに洞察に満ちたインタラクティブなデータプロットを埋め込むことができます。

この統合は、データアナリスト、科学者、ビジネスプロフェッショナル、および分析結果を効果的かつ明確に伝える必要のある個人に特に有益です。

HoloViewsとは何ですか?

PythonモジュールのHoloViewsは、データ視覚化の容易さとエレガンスを主な目標として開発されました。 宣言的でハイレベルな構文を使用しているため、ユーザーはどのように実装されているかよりも、何を可視化したいかに集中することができます。 HoloViewsはどのようなデータ型や構造にも柔軟に対応し、科学計算スタックやPandas、Dask、XArrayのような他のライブラリと簡単に統合できます。

HoloViews Python (How It Works For Developers):図1 - HoloViewsモジュールのウェブページ

HoloViewsは、Matplotlib、Bokeh、Plotlyなど、複数のチャートバックエンドをサポートしており、異なる視覚化ライブラリ間の移行が容易です。 特に、探索的データ分析において、データ注釈のためのインタラクティブなプロットを作成する際に有利です。

HoloViewsは、複雑なデータ視覚化の課題を抽象化し、ユーザーが最小限のコーディングで大規模なデータセットを美しく意味のある画像に変換できるようにします。 そのため、データサイエンティストやアナリストにとって不可欠なツールとなっています。

HoloViewsの特徴

1.宣言的構文: HoloViewsは、ユーザーが見たいものを正確に指定できる高レベルの宣言的構文を使用し、複雑なビジュアライゼーションの作成を簡素化します。

2.ネイティブ統合: Pandas、Dask、XArrayなどの科学計算スタック内のライブラリとシームレスに統合し、幅広いデータ型と構造をネイティブにサポートします。

3.外部ライブラリのサポート: Matplotlib、Bokeh、Plotlyを含むさまざまなライブラリをサポートしており、ユーザーは複数の視覚化ライブラリを簡単に切り替えることができます。

4.インタラクティブ: 動的な視覚化のためのインタラクティブなプロットを提供し、ユーザーがインタラクティブにデータを探索し、解釈できるようにします。

5.拡張性:ビジュアライゼーションをカスタマイズするための豊富なオプションセットを提供し、複数のバックエンドをサポートしているため、ユーザーは必要に応じてビジュアライゼーションを拡張し、微調整することができます。

6.使いやすさ:HoloViewsの高レベルAPIは、大規模なデータセットの視覚化を作成するために必要なコードを減らし、ユーザーが複雑なチャート作成よりもデータ分析に集中できるようにします。

7.コンポーザビリティ:視覚化をシームレスかつシンプルにすることに重点を置いたコンポーザビリティ機能により、ユーザーはシンプルなコンポーネントを簡単に組み合わせて、洗練された視覚化を実現できます。

8.データパイプライン:データ処理とプレゼンテーションのための複雑なワークフローの構築を簡素化します。

9.豊富なエコシステム: HoloVizエコシステムの一部として、HoloViewsはデータ可視化とアプリケーション開発のためのツールスイートを提供し、PanelやDatashaderなど、エコシステム内の他の堅牢なツールとうまく連携します。

HoloViewsの作成と設定

HoloViewsのインストールと依存関係

まず、以下のpipコマンドでHoloViewsとその依存関係をすべてダウンロードしてインストールしてください:

pip install holoviews
pip install bokeh
pip install holoviews
pip install bokeh
SHELL

HoloViewsを使用してチャートを生成する

</p
# Import required libraries
import holoviews as hv
from holoviews import opts
import numpy as np

# Initialize HoloViews with Bokeh backend
hv.extension('bokeh')

# Generate data
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Create HoloViews elements with annotated data
line_plot = hv.Curve((x, y), label='Sine Wave').opts(
    title="Line Plot", xlabel="X-axis", ylabel="Y-axis", color='blue'
)

scatter_plot = hv.Scatter((x, y), label='Scatter Plot').opts(
    size=10, color='red', title="Scatter Plot", xlabel="X-axis", ylabel="Y-axis"
)

hist = hv.Histogram(np.histogram(y, bins=20)).opts(
    title="Histogram", xlabel="Value", ylabel="Frequency", color='green'
)

# Combine the HoloViews plots into a layout
layout = (line_plot + scatter_plot + hist).cols(1)

layout.opts(
    opts.Curve(width=400, height=400),
    opts.Scatter(width=400, height=400),
    opts.Histogram(width=400, height=400)
)

# Display layout
layout

# Save visualization layout to an HTML file
hv.save(layout, 'visualization.html', fmt='html')
# Import required libraries
import holoviews as hv
from holoviews import opts
import numpy as np

# Initialize HoloViews with Bokeh backend
hv.extension('bokeh')

# Generate data
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Create HoloViews elements with annotated data
line_plot = hv.Curve((x, y), label='Sine Wave').opts(
    title="Line Plot", xlabel="X-axis", ylabel="Y-axis", color='blue'
)

scatter_plot = hv.Scatter((x, y), label='Scatter Plot').opts(
    size=10, color='red', title="Scatter Plot", xlabel="X-axis", ylabel="Y-axis"
)

hist = hv.Histogram(np.histogram(y, bins=20)).opts(
    title="Histogram", xlabel="Value", ylabel="Frequency", color='green'
)

# Combine the HoloViews plots into a layout
layout = (line_plot + scatter_plot + hist).cols(1)

layout.opts(
    opts.Curve(width=400, height=400),
    opts.Scatter(width=400, height=400),
    opts.Histogram(width=400, height=400)
)

# Display layout
layout

# Save visualization layout to an HTML file
hv.save(layout, 'visualization.html', fmt='html')
PYTHON

上記のコード・スニペットは、HoloViewsのデータ可視化のさまざまなグラフィカル要素を生成およびカスタマイズし、1つのレイアウトにまとめます。 ライブラリのインポート、インタラクティブなプロットのためのBokehバックエンドを使うためのHoloViewsの初期化、NumPyを使ったデータの生成から始めます。 データセットは、値xとそれに対応する正弦値yの配列で構成されています。

スクリプトは、正弦波の折れ線プロット、データポイントの散布図、正弦値分布のヒストグラムの3種類のプロットを作成します。 すべてのチャートは、optsメソッドを使用して、タイトル、軸ラベル、カラーリングでカスタマイズされています。

HoloViews Python (How It Works For Developers):図2 - 出力された可視化:折れ線グラフと散布図

HoloViews Python (How It Works For Developers):図3 - 出力された可視化:ヒストグラム

レイアウトは、プロットを1列に積み重ねます。 ビジュアライゼーションを表示した後、hv.saveを使用してレイアウトを'visualization.html'として保存し、HoloViewsでいかに簡単にインタラクティブなビジュアライゼーションを作成して保存できるかを示します。

HoloViewsとIronPDFを組み合わせる

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。