mcpField
S
syncfusion-winforms-smith-chart

syncfusion-winforms-smith-chart

github.com/syncfusionデータ・データベース276 回インストール1 週間前に更新
リポジトリ

syncfusion-winforms-smith-chart について

伝送線路や高周波回路のパラメーターを分析する開発者向けに、Syncfusion Windows Forms の Smith Chart コントロールを解説するスキルです。インピーダンスとアドミタンスの表示に加え、系列、マーカー、凡例、ツールチップ、軸の設定を扱います。

主な機能

  1. 01インピーダンスとアドミタンスの描画モード
  2. 02データバインディングと複数系列
  3. 03マーカーとデータラベルの設定
  4. 04凡例操作と系列表示の切り替え
  5. 05ツールチップのカスタマイズ
  6. 06軸とグリッド線の設定

活用シーン

  1. 01RF 回路のインピーダンス分析
  2. 02伝送線路パラメーターの可視化
  3. 03複数の回路構成の比較
  4. 04チャートデータの対話的な探索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-smith-chart

インストール後、Claude Code で/syncfusion-winforms-smith-chartを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
appearance-styling.md
axes-configuration.md
data-markers.md
getting-started.md
legend-customization.md
performance-optimization.md
rendering-modes.md
series-configuration.md
user-interactions.md

詳細

スミスチャートの実装

Syncfusion Windows Forms のスミスチャートは、高周波回路アプリケーションで非常に役立つデータ可視化ツールです。伝送線路のパラメーターをプロットするための、2 種類の円で構成されています。

このスキルを使用する場面

次のようなニーズがある場合に、このスキルを使用してください。

  • 伝送線路のインピーダンスまたはアドミタンスを可視化する
  • 高周波回路アプリケーション向けのスミスチャートを作成する
  • 正規化した抵抗値とリアクタンス値をプロットする
  • 正規化したコンダクタンス値とサセプタンス値を表示する
  • RF エンジニアリング向けの可視化ツールを構築する
  • 伝送線路のパラメーターを分析する
  • インタラクティブな回路解析チャートを作成する
  • 円形プロットにデータマーカー付きの線シリーズを実装する

主な目印: ユーザーが「スミスチャート」、「SfSmithChart」、「インピーダンス」、「アドミタンス」、「伝送線路」、「リアクタンス」、「抵抗」、「RF」、「高周波回路」に言及する、または回路パラメーターの可視化について問い合わせる場合です。

コンポーネントの概要

Syncfusion Windows Forms のスミスチャート(SfSmithChart)は、伝送線路のパラメーターをプロットするための特殊なデータ可視化コントロールです。2 種類の円群で構成されています。

  • インピーダンスモード: 正規化した抵抗円とリアクタンス曲線
  • アドミタンスモード: 正規化したコンダクタンス円とサセプタンス曲線
主な機能
  • 2 種類の描画モード: インピーダンスとアドミタンスの可視化を切り替えます
  • 線シリーズ: カスタマイズ可能な線種と色でデータをプロットします
  • データマーカー: 画像にも対応したさまざまな形状(円、長方形、ひし形)
  • インタラクティブな凡例: シリーズの表示を切り替え、位置をカスタマイズできます
  • ツールチップ: 書式をカスタマイズできるツールチップを設定できます
  • 軸のカスタマイズ: 主グリッド線と補助グリッド線、ラベル、スタイルを制御できます
  • データラベル: 自動的に引き出し線を配置し、適切に整列します
  • 外観: 複数のカラーパレットと詳細なスタイル設定に対応します
  • パフォーマンス: BeginUpdate/EndUpdate により大規模なデータセット向けに最適化されています

ドキュメントとナビゲーションガイド

はじめに

📄 参照: references/getting-started.md

  • アセンブリの配置と NuGet パッケージのインストール
  • Visual Studio デザイナーを使ったスミスチャートの追加
  • コードによるスミスチャートの追加
  • 必要な名前空間のインポート
  • DataSource、ResistanceMember、ReactanceMember によるデータバインディング
  • シリーズへのデータポイントの直接追加
  • 基本的なチャートの初期化と初回描画
  • Text プロパティを使用したタイトルの追加
シリーズとデータの設定

📄 参照: references/series-configuration.md

  • LineSeries の作成と設定
  • データバインディングのプロパティ(DataSource、ResistanceMember、ReactanceMember)
  • 線のカスタマイズ(Interior の色、StrokeWidth、DashStyle)
  • シリーズの表示制御
  • ArrangeByIndex プロパティを使用したデータのプロット
  • 複数シリーズのサポートと管理
データマーカー

📄 参照: references/data-markers.md

  • MarkerVisible プロパティを使用したマーカーの有効化
  • マーカーの形状(Rectangle、Circle、Diamond など)
  • マーカーのカスタマイズ(サイズ、色、枠線)
  • カスタムマーカーとしての画像の使用
  • データラベルの概要と適切な配置
  • ラベルの重なりを避けるための引き出し線の自動生成
軸の設定

📄 参照: references/axes-configuration.md

  • 抵抗値/コンダクタンス値を示す水平軸
  • リアクタンス値/サセプタンス値を示す放射軸
  • 主グリッド線の表示とスタイル
  • 補助グリッド線の設定と数
  • 軸線の外観のカスタマイズ
  • ラベルの配置(チャート領域の内側/外側)
  • 重なり合うラベルに対するラベル交差時の動作
  • カスタムラベルテキスト用の LabelCreated イベント
凡例のカスタマイズ

📄 参照: references/legend-customization.md

  • 系列の凡例表示とLegendText
  • DockPosition(Top、Bottom、Left、Right)による位置指定
  • 凡例アイコンの種類とサイズ
  • 配置オプション(Near、Far、Center)
  • スタイルのカスタマイズ(色、枠線、間隔)
  • 系列の表示を切り替えるインタラクティブな操作
  • 複数の系列に対するスクロールバーとWrapItems
外観とスタイル

📄 参照: references/appearance-styling.md

  • チャートのカラーパレット(Metro、Natureなど)
  • 系列単位のパレットのカスタマイズ
  • チャート領域の背景と枠線のスタイル設定
  • 円の半径の調整
  • BackColorおよびChartAreaBackColorプロパティ
ユーザー操作

📄 参照: references/user-interactions.md

  • ツールチップの表示と設定
  • プレースホルダーを使用したツールチップの書式設定
  • 外観をカスタマイズするTooltipOptions
  • 動的なコンテンツを設定するTooltipOpeningイベント
  • ツールチップのテキストとスタイルのカスタマイズ
レンダリングモード

📄 参照: references/rendering-modes.md

  • インピーダンスモードとアドミタンスモード
  • RenderingModeプロパティの設定
  • 抵抗/リアクタンス円について
  • コンダクタンス/サセプタンス円について
  • モードごとのデータの解釈
パフォーマンスの最適化

📄 参照: references/performance-optimization.md

  • BeginUpdateおよびEndUpdateメソッド
  • 大規模データセット向けの最適化
  • 複数のポイントを追加する際のベストプラクティス
  • 更新中のチャートの再描画を一時停止

クイックスタートの例

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.ObjectModel;
using Syncfusion.WinForms.SmithChart;

public class SmithChartExample : Form
{
    public SmithChartExample()
    {
        // Create Smith Chart
        SfSmithChart chart = new SfSmithChart();
        chart.Text = "Impedance Transmission";
        chart.BackColor = Color.White;  
        
        // Configure axes
        chart.HorizontalAxis.MinorGridlinesVisible = true;
        chart.RadialAxis.MinorGridlinesVisible = true;
        
        // Create series with data
        LineSeries series = new LineSeries();
        series.MarkerVisible = true;
        series.LegendText = "Transmission1";
        series.TooltipVisible = true;
        series.DataSource = GetTransmissionData();
        series.ResistanceMember = "Resistance";
        series.ReactanceMember = "Reactance";
        
        // Add series to chart
        chart.Series.Add(series);
        
        // Show legend
        chart.Legend.Visible = true;
        
        // Add chart to form
        this.Controls.Add(chart);
    }
    
    private ObservableCollection<TransmissionData> GetTransmissionData()
    {
        var data = new ObservableCollection<TransmissionData>();
        data.Add(new TransmissionData { Resistance = 0, Reactance = 0.05 });
        data.Add(new TransmissionData { Resistance = 0.3, Reactance = 0.1 });
        data.Add(new TransmissionData { Resistance = 0.5, Reactance = 0.2 });
        data.Add(new TransmissionData { Resistance = 1.0, Reactance = 0.4 });
        data.Add(new TransmissionData { Resistance = 2.0, Reactance = 0.5 });
        data.Add(new TransmissionData { Resistance = 3.5, Reactance = 0.0 });
        data.Add(new TransmissionData { Resistance = 5, Reactance = -1.0 });
        data.Add(new TransmissionData { Resistance = 10, Reactance = -10 });
        return data;
    }
}

public class TransmissionData
{
    public double Resistance { get; set; }
    public double Reactance { get; set; }
}

一般的なパターン

DataSourceを使用したデータの追加

データオブジェクトのコレクションがある場合:

// Create data model
var model = new SmithChartModel();

// Configure series
LineSeries series = new LineSeries();
series.DataSource = model.TransmissionData;
series.ResistanceMember = "Resistance";  // Property name for X-axis
series.ReactanceMember = "Reactance";    // Property name for Y-axis
sfSmithChart.Series.Add(series);
データポイントの直接追加

事前に定義されたコレクションを使用しない動的データの場合:

LineSeries series = new LineSeries();
series.MarkerVisible = true;

// Add individual points
series.Points.Add(0.5, 0.2);
series.Points.Add(1.0, 0.4);
series.Points.Add(2.0, 0.5);

sfSmithChart.Series.Add(series);
レンダリングモードの切り替え

インピーダンスとアドミタンスを切り替えます:

// Impedance mode (default) - shows resistance and reactance
sfSmithChart.RenderingMode = RenderingMode.Impedance;

// Admittance mode - shows conductance and susceptance
sfSmithChart.RenderingMode = RenderingMode.Admittance;
系列の外観のカスタマイズ
LineSeries series = new LineSeries();
series.Interior = Color.Red;           // Line color
series.StrokeWidth = 3;                // Line thickness
series.DashStyle = DashStyle.Dash;     // Line pattern
series.MarkerVisible = true;           // Show markers
series.MarkerType = MarkerType.Circle; // Marker shape
series.MarkerBackColor = Color.Blue;   // Marker fill
大規模データセットのパフォーマンス
sfSmithChart.BeginUpdate();  // Suspend repainting

LineSeries series = sfSmithChart.Series[0] as LineSeries;
for (int i = 0; i < 1000; i++)
{
    series.Points.Add(GetResistance(i), GetReactance(i));
}

sfSmithChart.EndUpdate();  // Resume and repaint once

主要なプロパティ

SfSmithChartプロパティ
プロパティ型説明
Textstring上部に表示されるチャートのタイトル
RenderingModeRenderingModeインピーダンスモードまたはアドミタンスモード
HorizontalAxisChartAxis水平軸の設定
RadialAxisChartAxis放射軸の設定
SeriesSeriesCollectionチャート系列のコレクション
LegendChartLegend凡例の設定
Radiusfloat円の直径(0.1~1.0、既定値は0.95)
BackColorColorチャートの背景色
LineSeriesプロパティ
プロパティ型説明
DataSourceobjectバインドするデータコレクション
ResistanceMemberstring抵抗/コンダクタンス値に使用するプロパティ
ReactanceMemberstringリアクタンス/サセプタンス値に使用するプロパティ
InteriorColor線の色
StrokeWidthint線の太さ
DashStyleDashStyle線のパターン(Solid、Dash、Dotなど)
MarkerVisibleboolデータマーカーの表示/非表示
MarkerTypeMarkerTypeマーカーの形状
TooltipVisibleboolツールチップを有効化
LegendTextstring凡例に表示するテキスト
Visiblebool系列の表示/非表示
ArrangeByIndexboolインデックス順にプロットするか、抵抗値順に並べてプロットするか
ChartAxisプロパティ
プロパティ型説明
MajorGridlinesVisiblebool主グリッド線の表示/非表示
MinorGridlinesVisiblebool補助グリッド線の表示/非表示
MinorGridlinesCountint主グリッド線の間に表示する補助グリッド線の数
LabelPlacementLabelPlacementチャート領域の内側または外側
LabelIntersectActionLabelIntersectActionsラベルの重なりを処理する方法(Hide)
AxisLineVisiblebool軸線の表示/非表示

一般的なユースケース

高周波回路解析

インピーダンスモードを使用して、RF 回路の動作を解析します。

  • 測定した S パラメーターをプロットします
  • 整合回路網の性能を視覚化します
  • アンテナのインピーダンス特性を解析します
伝送線路の視覚化

伝送線路のパラメーターを表示します。

  • 伝送線路に沿った正規化インピーダンスを表示します
  • 反射係数をプロットします
  • VSWR 円を視覚化します
複数のトレースの比較

異なる回路構成を比較します。

  • LegendText を変えて複数の系列を追加します
  • 系列ごとに異なる色を使用します
  • ToggleSeriesVisible を使って凡例を有効にし、インタラクティブに比較します
インタラクティブなデータ探索

ユーザーに探索ツールを提供します。

  • カスタム書式でツールチップを有効にします
  • 動的コンテンツには TooltipOpening イベントを使用します
  • 重要なポイントにデータラベルを追加します
  • 凡例から系列を切り替えられるようにします
カスタムマーカーの視覚化

特定のデータポイントを強調します。

  • 系列ごとに異なるマーカータイプを使用します
  • 特別なポイントに画像マーカーを追加します
  • マーカーのサイズと色をカスタマイズします

トラブルシューティング

データが表示されない
  • DataSource が設定され、有効なデータが含まれていることを確認します
  • ResistanceMember と ReactanceMember がプロパティ名と完全に一致していることを確認します(大文字と小文字は区別されます)
  • データ値が有効な範囲内であることを確認します
  • 系列が sfSmithChart.Series コレクションに追加されていることを確認します
大規模なデータセットでのパフォーマンスの問題
  • ポイントの追加を BeginUpdate() / EndUpdate() ブロックで囲みます
  • 不要な場合はマーカーを無効にします(MarkerVisible = false)
  • 非常に大規模なデータセットでは、データのサンプリングを検討します
ラベルが重なっている
  • LabelIntersectAction = LabelIntersectActions.Hide を使って、重なったラベルを自動的に非表示にします
  • チャートのサイズを調整するか、より広いスペースを確保するために LabelPlacement.Inside を使用します
  • スマート配置により、データラベルの重なりが自動的に処理されます
凡例が表示されない
  • chart.Legend.Visible = true を設定します
  • 各系列に LegendText プロパティが設定されていることを確認します
  • DockPosition に応じて、凡例を表示するのに十分なスペースがチャートにあることを確認します

コメント