syncfusion-winforms-chart について
Windows Forms 開発者向けに、Syncfusion ChartControl の実装方法を解説します。多様なチャート、データバインディング、操作機能、エクスポートを扱います。
主な機能
- 0135 種類以上のチャート
- 02複数データソースへのバインド
- 03複数シリーズと軸の設定
- 04ズーム、パン、ツールチップ
- 05PDF、Office 文書、画像への出力
活用シーン
- 01売上推移や比較の表示
- 02金融市場データの可視化
- 03統計分析チャートの作成
- 04時系列の監視データの描画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-chartインストール後、Claude Code で/syncfusion-winforms-chartを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/appearance-styling.mdaxes-configuration.mdchart-area.mdchart-events.mdchart-series.mdchart-title.mdchart-types.mddata-labels-tooltips.mddata-population.mdexporting-printing.mdgetting-started.mdlegend-configuration.mdlocalization.mdperformance-optimization.mdruntime-features.mdstatistical-formulas.mdtroubleshooting.md詳細
Syncfusion Windows Forms Charts の実装
Essential Chart for Windows Forms は、業務アプリケーション向けに 35 種類以上のチャートタイプをサポートする包括的なチャートコントロールです。豊富なカスタマイズ機能、データバインディング、インタラクティブ機能、エクスポート機能を備えており、プレゼンテーション品質のチャートを作成できます。
このスキルを使用する場面
次のことが必要な場合に、このスキルを使用してください。
- Windows Forms アプリケーションであらゆる種類のチャートを作成する
- 折れ線、エリア、横棒、縦棒、円、金融チャートでデータを可視化する
- ズーム、パン、ツールチップを備えたインタラクティブなチャートを実装する
- DataSet、DataTable、カスタムデータソースからチャートデータをバインドする
- チャートの軸、凡例、タイトル、外観を設定する
- チャートを PDF、Excel、Word、画像にエクスポートする
- チャートに統計分析や数式を追加する
- チャートのスタイルや色をカスタマイズする
コンポーネントの概要
ChartControl は、次の機能を提供する主要なコンポーネントです。
- 35 種類以上のチャートタイプ: エリア、横棒、バブル、ローソク足、縦棒、複合、ファネル、ガント、ヒストグラム、折れ線、円、ピラミッドなど
- 柔軟なデータバインディング: DataSet、DataTable、DataView、インターフェイスを介したカスタムモデル
- 複数系列のサポート: 異なるタイプの複数のデータ系列を重ねて表示
- 高度な軸: 主軸/副軸、DateTime のサポート、対数目盛、カスタム間隔
- 豊富なカスタマイズ: スキン、パレット、フォント、グラデーション、影
- インタラクティブ機能: ズーム、パン、ツールチップ、ヒットテスト、実行時の変更
- エクスポート機能: PDF、Excel、Word、画像、プレビュー付き印刷
- 統計サポート: 分析用の組み込み数式
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- アセンブリの配置と NuGet パッケージ
- Windows Forms への ChartControl の追加
- BindingList を使った基本的なデータの設定
- デザイン時の ChartWizard の設定
- 最初のチャートの例
チャートタイプ
📄 参照: references/chart-types.md
- 使用可能な 35 種類以上のチャートタイプの概要
- チャートタイプのカテゴリとユースケース
- タイプごとの Y 値の要件
- Type プロパティによるチャートタイプの設定
- タイプ固有の設定
データの設定
📄 参照: references/data-population.md
- DataSet、DataTable、DataView のバインド
- ChartDataBindModel と CategoryAxisDataBindModel
- IChartSeriesModel を介したカスタムデータモデル
- 大規模データセットのパフォーマンス最適化
チャート系列
📄 参照: references/chart-series.md
- ChartSeries の作成と追加
- データポイント用の ChartPoint クラス
- X 値と Y 値の管理
- 系列のスタイル設定とカスタマイズ
- 複数系列の設定
軸の設定
📄 参照: references/axes-configuration.md
- 主軸と副軸(PrimaryXAxis、PrimaryYAxis)
- 軸の値のタイプ(Double、DateTime、Category、Logarithmic)
- 範囲と間隔の設定
- カスタムラベルの書式設定と配置
- 複数軸のサポート
チャート領域
📄 参照: references/chart-area.md
- チャート領域のプロパティとレイアウト
- 背景、境界線、余白
- 内部のカスタマイズ
- 影の効果
外観とスタイル設定
📄 参照: references/appearance-styling.md
- 組み込みスキン(Metro、Office など)
- カラーパレットと CustomPalette
- グラデーションと単色のスタイル
- フォントとテキストの書式設定
- 高度なスタイル設定のための BrushInfo
凡例の設定
📄 参照: references/legend-configuration.md
- 凡例の有効化と配置
- LegendPosition と LegendAlignment
- 内側または外側への配置
- カスタム凡例項目
- 複数の凡例
チャートタイトル
📄 参照: references/chart-title.md
- ChartTitle オブジェクトの追加
- タイトルのテキストと配置
- フォントと外観のカスタマイズ
- 複数タイトルのサポート
データラベルとツールチップ
📄 参照: references/data-labels-tooltips.md
- データラベルの有効化(DisplayText)
- ラベルの書式設定と向き
- ツールチップの設定(ShowToolTips)
- PrepareStyle イベントによるカスタムツールチップの内容
- 外観のカスタマイズ
ランタイム機能
📄 参照: references/runtime-features.md
- ズームとパンの機能
- グラフ領域のヒットテスト
- インタラクティブな操作
- データの動的な更新
- ランタイムでの系列の変更
グラフイベント
📄 参照: references/chart-events.md
- ChartControl と系列のイベント
- カスタマイズ用の PrepareStyle イベント
- マウスとインタラクションのイベント
- グラフ領域のクリックイベント
- イベント処理のパターン
エクスポートと印刷
📄 参照: references/exporting-printing.md
- PDF、Excel、Word へのエクスポート
- 画像のエクスポート(PNG、BMP、JPEG)
- 印刷と印刷プレビュー
- 複数ページ印刷の設定
統計数式
📄 参照: references/statistical-formulas.md
- 組み込みの統計関数
- 平均、標準偏差、分散
- 分布、T 検定、F 検定、Z 検定
- 系列データへの数式の適用
パフォーマンスの最適化
📄 参照: references/performance-optimization.md
- 大規模なデータセットの処理方法
- データバインディングのパフォーマンス
- 描画の最適化
- メモリ管理のベストプラクティス
ローカライズ
📄 参照: references/localization.md
- グラフのテキストとラベルのローカライズ
- 文化圏に応じた書式設定
- リソースファイルの設定
- 日付と数値の書式設定
トラブルシューティング
📄 参照: references/troubleshooting.md
- よくある問題と解決策
- データ表示の問題
- パフォーマンスの問題
- デザイン時の設定に関する問題
クイックスタートの例
using Syncfusion.Windows.Forms.Chart;
using System.ComponentModel;
// Create a simple data model
public class SalesData
{
public string Year { get; set; }
public double Sales { get; set; }
public SalesData(string year, double sales)
{
this.Year = year;
this.Sales = sales;
}
}
// Populate data
BindingList<SalesData> dataSource = new BindingList<SalesData>();
dataSource.Add(new SalesData("2020", 30));
dataSource.Add(new SalesData("2021", 45));
dataSource.Add(new SalesData("2022", 60));
dataSource.Add(new SalesData("2023", 75));
// Create data model for binding
CategoryAxisDataBindModel dataModel = new CategoryAxisDataBindModel(dataSource);
dataModel.CategoryName = "Year";
dataModel.YNames = new string[] { "Sales" };
// Create and configure series
ChartSeries series = new ChartSeries("Sales");
series.Type = ChartSeriesType.Column;
series.CategoryModel = dataModel;
series.Style.DisplayText = true;
// Configure chart
chartControl1.PrimaryXAxis.ValueType = ChartValueType.Category;
chartControl1.Series.Add(series);
chartControl1.Skins = Skins.Metro;
// Add title
ChartTitle title = new ChartTitle();
title.Text = "Sales Performance";
chartControl1.Titles.Add(title);
// Configure legend
chartControl1.Legend.Visible = true;
chartControl1.LegendAlignment = ChartAlignment.Center;
chartControl1.Legend.Position = ChartDock.Bottom;
よくあるパターン
パターン 1:種類の異なる複数の系列
// Sales as columns
ChartSeries salesSeries = new ChartSeries("Sales");
salesSeries.Type = ChartSeriesType.Column;
salesSeries.Points.Add(1, 100);
salesSeries.Points.Add(2, 150);
salesSeries.Points.Add(3, 120);
// Target as line
ChartSeries targetSeries = new ChartSeries("Target");
targetSeries.Type = ChartSeriesType.Line;
targetSeries.Points.Add(1, 110);
targetSeries.Points.Add(2, 130);
targetSeries.Points.Add(3, 140);
chartControl1.Series.Add(salesSeries);
chartControl1.Series.Add(targetSeries);
パターン 2:日付データを使用する DateTime 軸
ChartSeries series = new ChartSeries("Temperature");
series.Type = ChartSeriesType.Line;
// Add points with DateTime X values
series.Points.Add(new DateTime(2024, 1, 1), 18.5);
series.Points.Add(new DateTime(2024, 1, 2), 19.2);
series.Points.Add(new DateTime(2024, 1, 3), 17.8);
// Configure X axis for DateTime
chartControl1.PrimaryXAxis.ValueType = ChartValueType.DateTime;
chartControl1.PrimaryXAxis.DateTimeFormat = "dd/MM/yyyy";
chartControl1.Series.Add(series);
パターン 3:カスタムツールチップ
chartControl1.ShowToolTips = true;
chartSeries.PrepareStyle += (sender, args) =>
{
ChartSeries series = sender as ChartSeries;
ChartPoint point = series.Points[args.Index];
args.Style.ToolTip = $"Value: {point.YValues[0]:N2}";
};
パターン 4:グラフを PDF にエクスポート
// Export to PDF
chartControl1.SaveImage("chart.pdf");
// Export to image
chartControl1.SaveImage("chart.png");
主なプロパティ
ChartControl:
Series- 表示する ChartSeries のコレクションPrimaryXAxis、PrimaryYAxis- 主軸の設定Legend- 凡例の表示と外観Titles- グラフタイトルのコレクションShowToolTips- インタラクティブなツールチップを有効化
ChartSeries:
Type- グラフの種類(Column、Line、Pie など)Points- データポイントのコレクションCategoryModel- データバインディングモデルStyle- 外観の設定Text- 系列の表示名
ChartAxis:
ValueType- データ型(Double、DateTime、Category など)Range- 最小値/最大値Interval- ラベル間の間隔Title- 軸タイトルのテキスト
よくある使用例
- 売上ダッシュボード: 複数の系列を使用した、売上の傾向を示す縦棒グラフ/折れ線グラフ
- 財務分析: 株価データを視覚化するローソク足/OHLC グラフ
- 統計レポート: データ分布の分析に使用するヒストグラム、箱ひげ図
- パフォーマンス監視: 時系列データに DateTime 軸を使用した折れ線グラフ
- 比較グラフ: カテゴリの比較に使用する横棒グラフ
- データ分布: 割合の内訳に使用する円グラフ/ドーナツグラフ
- 科学データ: 相関分析に使用する散布図/バブルチャート
- プロジェクト管理: スケジュールを視覚化するガントチャート
関連スキル
- Syncfusion Windows Forms コンポーネントの実装 - メインライブラリの概要
- その他のプラットフォームについては、親ドキュメントフォルダーを参照してください