

このガイドは、ProEssentials でプロフェッショナルなチャートを構築するために必要なすべて — 適切なチャートオブジェクトの選択から、効率的なデータハンドリング、GPU アクセラレーションによるリアルタイム ストリーミングまで — をカバーします。ProEssentials は Direct2D、Direct3D、GdiPlus レンダリングを備えたネイティブ .NET / C++ チャートコンポーネントであり、最少の CPU/GPU サイクルと入手可能な最速のチャートレンダリングのために設計されています。WinForm チャート、WPF チャート、MFC C++ の可視化 — どれを作る場合でも、これがあなたの技術リファレンスです。
ProEssentials のあらゆる実装は、5つのチャートオブジェクトから1つを選ぶことから始まります。この選択が実装全体 — データモデル、軸の挙動、プロット方法、利用可能な機能 — を決定します。データと可視化の目的に基づいて選んでください。
カテゴリー型・連続型 X 軸データのための標準 .NET チャートコントロール。Bar、Line、Area、Stacked Bar、Stacked Area、OHLC、High-Low-Close、Ribbon など計27のプロット方法をサポート。X 軸ラベルは PointLabels 文字列配列で設定します — 数値の X データ配列は不要です。
連続数値 X 軸データのための科学チャートコンポーネント。Scatter、Line、Spline、Bubble、Area、Contour/HeatMap など計26のプロット方法をサポート。PeData.X[subset, point] 値による明示的な X データ配列が必要です。ジャグデータ(ポイント数が異なるサブセット)、コンター レンダリング、そして最も豊富なリアルタイム ストリーミング オプションをサポートします。
X、Y、Z のデータ配列と Direct3D レンダリングを使い、3D サーフェス、ワイヤーフレーム、3D コンター、3D 棒グラフ、3D 散布図をレンダリングします。Y が垂直(標高)軸です。AppendData(スクロールするサーフェス)または AppendSubset(ウォーターフォール)によるリアルタイム 3D サーフェス アニメーションをサポートします。
角度データのための極座標チャートコンポーネント。極座標ライン、極座標散布図、レーダー/スパイダー チャート、ローズ ダイアグラム、RF エンジニアリング向けスミスチャートをサポート。データは角度と大きさで表現します。
円グラフ、ドーナツグラフ、マルチリング チャートを、切り出しスライス、パーセント ラベル、凡例統合付きでレンダリングします。スライス値は単一のデータ配列です。
ProEssentials は、データセットのサイズと性能要件に応じて選べる6つのデータ読み込みパターンを提供します。データは Subsets(系列/ライン)× Points(データ値)として構成されます。まず PeData.Subsets と PeData.Points を設定し、その後データ配列を投入します。ベストプラクティス: データの準備はチャート API コードから分離してください — まずデータソースから配列を構築し、完成した配列を ProEssentials に渡します。
PeData.Y[subset, point] = value で値を1つずつ代入します。Pesgo では PeData.X も設定します。Pe3do では PeData.Z も設定します。シンプルで明快 — デモや小さな静的データセットに最適です。
コード内で float 配列を構築し、PeData.Y.FastCopyFrom(array) を呼びます。要素ごとの相互運用オーバーヘッドを回避します。1次元、2次元、ジャグ配列のオーバーロードがあります。
チャートをあなたのマネージド配列へ直接向けます — データコピーは一切ありません。PeData.Y.UseDataAtLocation(array, bufferSize) を呼びます。超大規模データセット、複数チャート間でのデータ共有、リアルタイム シナリオに最適です。
PeData.Y.AppendData(newValues, amountPerSubset) を呼んで新しいデータをプッシュします。既存データは自動的にシフトされます。CircularBuffers と組み合わせれば、10万ポイント以上でもリングバッファ性能が得られます。
PeData.Y.BindData() で ADO.NET の DataReader や DataView から直接読み込みます。データベース駆動のチャートアプリケーションに便利です。
サブセットごとにポイント数が異なる場合は PeData.JaggedData = true を有効にします。RenderEngine = Direct2D が必要です。3つのサブメソッド: 直接インデックス、CopyFromJagged、UseJaggedDataAtLocation。
DuplicateData 最適化: 全サブセットが同一の X データを共有する場合(Pesgo でよくあるケース)、PeData.DuplicateDataX = DuplicateData.PointIncrement を設定します。X データはサブセット0にのみ与えれば、チャートが全サブセットでそれを再利用し、冗長なストレージを排除します。
ProEssentials は、シンプルなストリップチャートから数百万ポイントの GPU アクセラレーション高頻度ストリーミングまで、5つのリアルタイム更新戦略をサポートします。
必須セットアップ(すべてのリアルタイム チャート共通): PeConfigure.PrepareImages = true、PeConfigure.CacheBmp = true(静的要素をキャッシュしてフリッカーフリーの再描画を実現)、PeSpecial.AutoImageReset = false(自動ダーティチェックをスキップ)。ティックごとにデータセット全体の最小/最大スキャンを避けるため、手動の軸スケーリングを強くお勧めします。
既存データをシフトし、端に新しいデータを追加します。最も一般的なリアルタイム パターンです。Pego、Pesgo、Pe3do で動作します。CircularBuffers と組み合わせれば、10万ポイント以上のリングバッファ性能が得られます。
ティックごとに全データを置き換えます。バッファ全体が同時に変化するオシロスコープ型の波形表示に最適です。例: 4サブセット × 10万ポイント = ティックあたり40万値を置換。
インデックスで直接書き込み、バッファ末尾でカウンターをラップします。シフトもアペンドもなし — その場で上書きするだけです。循環型の表示に適しています。
Pe3do 専用。ティックごとに完全な新サブセットを追加し、3D ウォーターフォール可視化を生成します。各ティックがウォーターフォールに新しい行を加えます。
アプリケーションが自身のメモリを管理し、チャートはそれを直接読みます。コピーのオーバーヘッドはありません。CircularBuffers および AppendData と組み合わせれば、ProEssentials が循環ポインタを使ってあなたのローカルメモリへ追記します。例: 4サブセット × 200万ポイントをゼロコピーで。
ProEssentials は、GPU アクセラレーション付きのネイティブ Direct2D / Direct3D レンダリングにより、入手可能な最速のチャートレンダリングを実現します。これらの機能は組み合わせて最大スループットを引き出せます。
PeData.ComputeShader = true。チャート構築を GPU へオフロードします — 単一の CPU スレッドに対し、潜在的に2000以上のコア。Direct3D レンダーエンジンの Pesgo と Pe3do に適用されます。チャート ジオメトリを CPU ではなく GPU 上で構築するため、大規模データセットで劇的なスピードアップをもたらします。
PeData.Filter2D3D = true(Pesgo 専用)。2段構成の ComputeShader パイプライン: まず連続的な 2D ラインデータをロスレスで前段フィルターし、その後最終シェーダーがシーンを構築します。25万ポイント以上のラインチャートで劇的な速度改善。ComputeShader = true と併用してください。
PeData.CircularBuffers = true。AppendData 呼び出しのたびにメモリをシフトする代わりに、リングバッファ ポインタを使います。10万ポイント以上のリアルタイム ストリーミングに不可欠です。Pego、Pesgo、Pepso、Pe3do で動作します。
PeData.StagingBufferX/Y/Z = true。データ配列の GPU 側コピーを保持し、効率的な CPU→GPU 転送パイプラインを実現します。リアルタイム レンダリング中に更新される軸ごとに有効化してください。
3つのレンダーエンジン: Direct2D、Direct3D、GdiPlus。Direct3D は ComputeShader と完全な GPU アクセラレーションを可能にします。Direct2D はジャグデータと高度な 2D レンダリングをサポートします。GdiPlus は最も広い互換性を持つレガシー フォールバックです。
ProEssentials は階層的なプロパティ インターフェイスを使用します。チャートのすべての設定は、チャートコントロールからアクセスするネストされたプロパティ オブジェクトを通じて行います。このアーキテクチャは .NET チャート、WPF チャート、C++ DLL 開発に等しく適用されます。
プロパティ グループ: PeData(データ配列、カウント、モード)、PePlot(プロット方法、視覚オプション)、PeGrid(軸スケール、グリッド線、ズーム)、PeColor(全要素の色)、PeString(ラベル、タイトル)、PeFont(フォント サイズ)、PeAnnotation(参照線、グラフ アノテーション、軸アノテーション)、PeUserInterface(操作、カーソル、ホットスポット、スクロールバー)、PeConfigure(レンダリング、キャッシュ)、PeFunction(アクション — 再初期化、印刷、ズーム、エクスポート)、PeTable(チャート下のデータテーブル)、PeLegend(凡例設定)。
列挙型駆動の設定: 挙動に関わる設定のほとんどは列挙型を使います — 整数値を直接ハードコードしないでください。主要な列挙型には GraphPlottingMethod、SGraphPlottingMethod、ManualScaleControl、ViewingStyle、QuickStyle、RenderEngine、AllowZooming、MultiAxisStyle、CursorMode、CursorPromptStyle があります。重要: PePlot.Method はチャートオブジェクトごとに異なる列挙型を使います。
レンダリング パイプライン: PeConfigure.CacheBmp = true は常に設定すべきです — レンダリング済み画像をメモリにキャッシュし、フリッカーフリーの再描画を実現します。PeFunction.ReinitializeResetImage() はデータ変更後の完全な再構築を行います。PeFunction.ResetImage(0,0) は視覚的な変更後に画像のみを再構築します。ProEssentials には、インテリジェントな軸スケーリング、ラベル配置、凡例レイアウト、グリッド線間隔によって不格好なチャートを自動的に防ぐ AI 型ロジックが組み込まれています。
2つの API レイヤー: .NET プロパティ インターフェイスと C++ DLL インターフェイスは相互に交換可能です — どちらも同じネイティブ エンジンへアクセスします。C#/VB/WPF では .NET が標準です。DLL インターフェイスは MFC C++、Delphi、特殊なケースで使われます。PeSpecial.HObject が相互運用シナリオ向けにネイティブ DLL ハンドルを提供します。
ProEssentials は、参照線、テキスト マーカー、コールアウト ラベル、図形、データテーブルをあらゆるチャートに追加できる包括的なアノテーション システムを提供します。
Line アノテーション: データ座標における水平・垂直の参照線。水平線は PeAnnotation.Line.YAxis[i]、垂直線は PeAnnotation.Line.XAxis[i] で設定します。16以上の線スタイル、アノテーションごとの色、テキスト ラベル、ズームウィンドウでの表示制御をサポートします。
Graph アノテーション: 任意のデータ座標にシンボル、テキスト、線、図形、ビットマップを配置します。角度付きテキスト、連結線、テキスト ドッジング(自動回避)、複合パターン、ビットマップ、アノテーションごとの書式設定をサポート。チャートデータから独立しています — コールアウト ラベル、オーバーレイ マーカー、装飾要素に使えます。
Table アノテーション: 軸領域の内側、チャートの端、またはデータポイントに揃えて配置できる、最大20個の独立したテーブル要素。セル個別の書式設定付きで複数列・複数行レイアウトをサポート。カスタム凡例、データ サマリー、情報パネルに使われます。
Quick アノテーション: 完全な画像再構築を回避する最適化パスでレンダリングされる一時的なグラフ アノテーション。計測オーバーレイ、ドラッグ矩形、十字カーソル、マウス移動のたびに更新される一時的な UI に最適です。
ProEssentials は、データ ホットスポットのクリック、カーソル トラッキング、ズーム変更、カスタム イベント処理など、ユーザー操作に対する .NET イベントを発火します。主要パターンには、ピクセル→データ座標変換(ConvPixelToGraph)、クリック可能なチャート領域のためのホットスポット検出、設定可能なツールチップ スタイル付きカーソル トラッキングがあります。マウスホイール ズーム、インタラクティブなデータ スクロール、ポップアップ メニューのカスタマイズをサポートします。
マルチ軸チャート: 1つのチャートに複数の Y 軸を表示します。各軸が独自のスケール、グリッド数値、ラベル、色を持ちます。サブセットは MultiAxisStyle と WorkingAxis プロパティで軸に割り当てます。グラフ領域を分離するレイアウトと、軸を重ねるレイアウトの両方をサポートします。
ズームとスクロール: Pesgo は3つの独立した軸制御レベル — 自動スケール、手動スケール、ズーム制御 — をサポートします。ズームは手動値を変更せずに手動スケーリングへオーバーレイされます。Pego はスクロールバーによるナビゲーションに PointsToGraph を使います。インタラクティブ ズームは AllowZooming 列挙型とマウスホイール設定で制御します。
日付/時刻軸: ProEssentials はシリアル日付値を通じて日付/時刻 X 軸をサポートします。PeData の DateTimeMode を有効にし、日付を OLE オートメーションの double として渡します。均一な時間ステップ(DeltaX)と可変の時間ステップ(DeltasX 配列)の両方をサポートします。
ビジュアル スタイリング: 色は PeColor プロパティ グループで制御します — 系列ごとの SubsetColors、グラフ領域の色、軸の色、グリッド線の透明度。ViewingStyle と QuickStyle 列挙型によるクイック ビジュアル テーマ。フォント サイズは比例制御システムを使います。データ可視化機能には、3D シャドウ効果、設定可能なポイント サイズ、線スタイル、バーの幅/間隔制御が含まれます。
印刷とエクスポート: PeFunction.PrintGraph() と PeFunction.PrintGraphEx() による、向きと余白の制御付きプログラム印刷。BMP、JPG、PNG、EMF、SVG 形式への画像エクスポート。クリップボード コピー対応。すべてのエクスポートは現在のレンダーエンジンに従い、一貫した出力を生成します。
ProEssentials には、あらゆる AI アシスタントに完全な API へのオンデマンド アクセスを提供する Python 駆動の AI 支援システムが含まれます — 幻覚プロパティパスを防ぐ正解データ検証付きです。システムには pe_query.py(15以上のクエリコマンド)、32のナレッジファイル、116のコード例、そして全インターフェイスにわたる1,200以上のプロパティ、70以上のメソッド、169の列挙型をカバーする構造化 JSON データが含まれます。
AI コードアシスタントのセットアップこれらの AI ナレッジファイルは ProEssentials のインストールに含まれており、ここからもダウンロードできます。Claude AI Projects やお好みの AI ツールに読み込ませて、AI 支援による ProEssentials 開発にご利用ください。
ProEssentials は、C# .NET 8 および .NET 10(WinUI、WPF、WinForms)、VB.NET、MFC C++、Embarcadero Delphi、C++ Builder VCL、ActiveX/Access OCX による開発をサポートします。配布時には、アプリケーションと一緒に単一のネイティブ DLL(PEGRP64I.DLL)を配置するだけです。.NET ラッパーアセンブリは、ローカルの NuGet パッケージとして、または直接のアセンブリ参照として利用できます。最良のパフォーマンスを得るには、ProEssentials の x64 アセンブリを推奨します。
御社とエンドユーザーに最も簡単で最もプロフェッショナルな価値を提供することで、お客様の成功を最優先目標とします。
ProEssentials は、自らのチャートコンポーネントを必要としたプロの電気エンジニアから生まれました。ProEssentials を使う一流エンジニアリング企業の長いリストに加わってください。
ProEssentials のお客様であることに感謝するとともに、ProEssentials チャートエンジンをご検討いただきありがとうございます。