syncfusion-winforms-smith-chart

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing Smith Charts

实现史密斯图

The Syncfusion Windows Forms Smith chart is one of the most useful data visualization tools for high frequency circuit applications. It contains two sets of circles to plot the parameters of transmission lines.
Syncfusion Windows Forms 史密斯图是面向高频电路应用最实用的数据可视化工具之一,它包含两组圆形图层来绘制传输线参数。

When to Use This Skill

何时使用该技能

Use this skill when the user needs to:
  • Visualize impedance or admittance of transmission lines
  • Create Smith Charts for high-frequency circuit applications
  • Plot normalized resistance and reactance values
  • Display normalized conductance and susceptance values
  • Build RF engineering visualization tools
  • Analyze transmission line parameters
  • Create interactive circuit analysis charts
  • Implement line series with data markers on circular plots
Key indicators: User mentions "Smith Chart", "SfSmithChart", "impedance", "admittance", "transmission line", "reactance", "resistance", "RF", "high-frequency circuit", or references circuit parameter visualization.
当用户需要完成以下需求时使用本技能:
  • 可视化传输线的阻抗或导纳
  • 为高频电路应用创建史密斯图
  • 绘制归一化电阻和电抗值
  • 展示归一化电导和电纳值
  • 搭建RF工程可视化工具
  • 分析传输线参数
  • 创建交互式电路分析图表
  • 在圆形绘图上实现带数据标记的折线系列
关键识别词: 用户提及"Smith Chart"、"SfSmithChart"、"impedance(阻抗)"、"admittance(导纳)"、"transmission line(传输线)"、"reactance(电抗)"、"resistance(电阻)"、"RF"、"high-frequency circuit(高频电路)",或者提及电路参数可视化相关内容。

Component Overview

组件概述

The Syncfusion Windows Forms Smith Chart (SfSmithChart) is a specialized data visualization control for plotting transmission line parameters. It consists of two families of circles:
  • Impedance mode: Normalized resistance circles and reactance curves
  • Admittance mode: Normalized conductance circles and susceptance curves
Syncfusion Windows Forms Smith Chart (SfSmithChart) 是专门用于绘制传输线参数的专业数据可视化控件,由两类圆形图层组成:
  • 阻抗模式: 归一化电阻圆和电抗曲线
  • 导纳模式: 归一化电导圆和电纳曲线

Key Features

核心功能

  • Dual Rendering Modes: Switch between impedance and admittance visualization
  • Line Series: Plot data with customizable line styles and colors
  • Data Markers: Various shapes (circle, rectangle, diamond) with image support
  • Interactive Legends: Toggle series visibility, customizable positioning
  • Tooltips: Configurable tooltips with custom formatting
  • Axes Customization: Control major/minor gridlines, labels, and styling
  • Data Labels: Smart alignment with automatic connector lines
  • Appearance: Multiple color palettes and full styling control
  • Performance: Optimized for large datasets with BeginUpdate/EndUpdate
  • 双渲染模式: 可在阻抗和导纳可视化模式之间切换
  • 折线系列: 可自定义线条样式和颜色绘制数据
  • 数据标记: 支持圆形、矩形、菱形等多种形状,支持自定义图片
  • 交互式图例: 可切换系列可见性,支持自定义位置
  • 工具提示: 可配置工具提示,支持自定义格式
  • 坐标轴自定义: 可控制主/次网格线、标签和样式
  • 数据标签: 智能对齐,支持自动连接线
  • 外观配置: 多套配色方案,支持完整样式控制
  • 性能优化: 针对大数据集优化,支持BeginUpdate/EndUpdate机制

Documentation and Navigation Guide

文档与导航指南

Getting Started

入门指南

📄 Read: references/getting-started.md
  • Assembly deployment and NuGet package installation
  • Adding Smith Chart via Visual Studio designer
  • Adding Smith Chart programmatically through code
  • Required namespace imports
  • Data binding with DataSource, ResistanceMember, ReactanceMember
  • Adding data points directly to series
  • Basic chart initialization and first render
  • Adding title with Text property
📄 阅读: references/getting-started.md
  • 程序集部署和NuGet包安装
  • 通过Visual Studio设计器添加史密斯图
  • 通过代码编程方式添加史密斯图
  • 所需命名空间导入
  • 使用DataSource、ResistanceMember、ReactanceMember实现数据绑定
  • 直接向系列中添加数据点
  • 基础图表初始化和首次渲染
  • 通过Text属性添加标题

Series and Data Configuration

系列与数据配置

📄 Read: references/series-configuration.md
  • LineSeries creation and configuration
  • Data binding properties (DataSource, ResistanceMember, ReactanceMember)
  • Line customization (Interior color, StrokeWidth, DashStyle)
  • Series visibility control
  • Data plotting with ArrangeByIndex property
  • Multiple series support and management
📄 阅读: references/series-configuration.md
  • LineSeries创建与配置
  • 数据绑定属性(DataSource、ResistanceMember、ReactanceMember)
  • 线条自定义(填充色、线宽、虚线样式)
  • 系列可见性控制
  • 通过ArrangeByIndex属性控制数据绘制逻辑
  • 多系列支持与管理

Data Markers

数据标记

📄 Read: references/data-markers.md
  • Enabling markers with MarkerVisible property
  • Marker shapes (Rectangle, Circle, Diamond, etc.)
  • Marker customization (size, colors, borders)
  • Using images as custom markers
  • Data labels overview and smart alignment
  • Automatic connector lines for label collision avoidance
📄 阅读: references/data-markers.md
  • 通过MarkerVisible属性启用标记
  • 标记形状(矩形、圆形、菱形等)
  • 标记自定义(尺寸、颜色、边框)
  • 使用图片作为自定义标记
  • 数据标签概述与智能对齐
  • 自动连接线避免标签重叠

Axes Configuration

坐标轴配置

📄 Read: references/axes-configuration.md
  • Horizontal axis for resistance/conductance values
  • Radial axis for reactance/susceptance values
  • Major gridlines visibility and styling
  • Minor gridlines configuration and count
  • Axis line appearance customization
  • Label placement (inside/outside chart area)
  • Label intersect action for overlapping labels
  • LabelCreated event for custom label text
📄 阅读: references/axes-configuration.md
  • 用于电阻/电导值的水平坐标轴
  • 用于电抗/电纳值的径向坐标轴
  • 主网格线可见性和样式设置
  • 次网格线配置与数量设置
  • 轴线外观自定义
  • 标签位置(图表区域内侧/外侧)
  • 标签重叠处理策略
  • 用于自定义标签文本的LabelCreated事件

Legend Customization

图例自定义

📄 Read: references/legend-customization.md
  • Legend visibility and LegendText for series
  • Positioning with DockPosition (Top, Bottom, Left, Right)
  • Legend icon types and sizing
  • Alignment options (Near, Far, Center)
  • Style customization (colors, borders, spacing)
  • Interactive toggle for series visibility
  • Scrollbar and WrapItems for multiple series
📄 阅读: references/legend-customization.md
  • 图例可见性与系列的LegendText设置
  • 通过DockPosition设置位置(上、下、左、右)
  • 图例图标类型与尺寸设置
  • 对齐选项(靠近、远离、居中)
  • 样式自定义(颜色、边框、间距)
  • 交互式切换系列可见性
  • 多系列下的滚动条和自动换行支持

Appearance and Styling

外观与样式

📄 Read: references/appearance-styling.md
  • Chart color palettes (Metro, Nature, etc.)
  • Series-level palette customization
  • Chart area background and border styling
  • Circle radius adjustment
  • BackColor and ChartAreaBackColor properties
📄 阅读: references/appearance-styling.md
  • 图表配色方案(Metro、Nature等)
  • 系列级配色自定义
  • 图表区域背景和边框样式
  • 圆形半径调整
  • BackColor和ChartAreaBackColor属性配置

User Interactions

用户交互

📄 Read: references/user-interactions.md
  • Tooltip visibility and configuration
  • Tooltip formatting with placeholders
  • TooltipOptions for appearance customization
  • TooltipOpening event for dynamic content
  • Custom tooltip text and styling
📄 阅读: references/user-interactions.md
  • 工具提示可见性与配置
  • 带占位符的工具提示格式化
  • 用于外观自定义的TooltipOptions
  • 用于动态内容的TooltipOpening事件
  • 自定义工具提示文本和样式

Rendering Modes

渲染模式

📄 Read: references/rendering-modes.md
  • Impedance vs Admittance modes
  • RenderingMode property configuration
  • Understanding resistance/reactance circles
  • Understanding conductance/susceptance circles
  • Mode-specific data interpretation
📄 阅读: references/rendering-modes.md
  • 阻抗模式与导纳模式对比
  • RenderingMode属性配置
  • 理解电阻/电抗圆
  • 理解电导/电纳圆
  • 不同模式下的数据解读

Performance Optimization

性能优化

📄 Read: references/performance-optimization.md
  • BeginUpdate and EndUpdate methods
  • Optimizing for large datasets
  • Best practices for adding multiple points
  • Suspending chart repaints during updates
📄 阅读: references/performance-optimization.md
  • BeginUpdate和EndUpdate方法
  • 大数据集优化
  • 添加多数据点的最佳实践
  • 更新期间暂停图表重绘

Quick Start Example

快速入门示例

csharp
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; }
}
csharp
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; }
}

Common Patterns

常用模式

Adding Data via DataSource

通过DataSource添加数据

When you have a collection of data objects:
csharp
// 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);
当你有数据对象集合时使用:
csharp
// 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);

Adding Data Points Directly

直接添加数据点

For dynamic data without a predefined collection:
csharp
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);
适用于没有预定义集合的动态数据场景:
csharp
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);

Switching Rendering Modes

切换渲染模式

Toggle between impedance and admittance:
csharp
// Impedance mode (default) - shows resistance and reactance
sfSmithChart.RenderingMode = RenderingMode.Impedance;

// Admittance mode - shows conductance and susceptance
sfSmithChart.RenderingMode = RenderingMode.Admittance;
在阻抗和导纳模式之间切换:
csharp
// Impedance mode (default) - shows resistance and reactance
sfSmithChart.RenderingMode = RenderingMode.Impedance;

// Admittance mode - shows conductance and susceptance
sfSmithChart.RenderingMode = RenderingMode.Admittance;

Customizing Series Appearance

自定义系列外观

csharp
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
csharp
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

Performance for Large Datasets

大数据集性能优化

csharp
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
csharp
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

Key Properties

核心属性

SfSmithChart Properties

SfSmithChart 属性

PropertyTypeDescription
Text
stringChart title displayed at the top
RenderingMode
RenderingModeImpedance or Admittance mode
HorizontalAxis
ChartAxisHorizontal axis configuration
RadialAxis
ChartAxisRadial axis configuration
Series
SeriesCollectionCollection of chart series
Legend
ChartLegendLegend configuration
Radius
floatCircle diameter (0.1 to 1.0, default 0.95)
BackColor
ColorChart background color
属性类型说明
Text
string显示在顶部的图表标题
RenderingMode
RenderingMode阻抗或导纳模式
HorizontalAxis
ChartAxis水平坐标轴配置
RadialAxis
ChartAxis径向坐标轴配置
Series
SeriesCollection图表系列集合
Legend
ChartLegend图例配置
Radius
float圆形直径(取值0.1到1.0,默认0.95)
BackColor
Color图表背景色

LineSeries Properties

LineSeries 属性

PropertyTypeDescription
DataSource
objectData collection to bind
ResistanceMember
stringProperty for resistance/conductance values
ReactanceMember
stringProperty for reactance/susceptance values
Interior
ColorLine color
StrokeWidth
intLine thickness
DashStyle
DashStyleLine pattern (Solid, Dash, Dot, etc.)
MarkerVisible
boolShow/hide data markers
MarkerType
MarkerTypeMarker shape
TooltipVisible
boolEnable tooltips
LegendText
stringText shown in legend
Visible
boolShow/hide series
ArrangeByIndex
boolPlot by index vs sorted by resistance
属性类型说明
DataSource
object要绑定的数据集合
ResistanceMember
string电阻/电导值对应的属性名
ReactanceMember
string电抗/电纳值对应的属性名
Interior
Color线条颜色
StrokeWidth
int线条粗细
DashStyle
DashStyle线条样式(实线、虚线、点线等)
MarkerVisible
bool显示/隐藏数据标记
MarkerType
MarkerType标记形状
TooltipVisible
bool启用工具提示
LegendText
string图例中显示的文本
Visible
bool显示/隐藏系列
ArrangeByIndex
bool按索引绘制还是按电阻排序绘制

ChartAxis Properties

ChartAxis 属性

PropertyTypeDescription
MajorGridlinesVisible
boolShow/hide major gridlines
MinorGridlinesVisible
boolShow/hide minor gridlines
MinorGridlinesCount
intNumber of minor gridlines between major
LabelPlacement
LabelPlacementInside or Outside chart area
LabelIntersectAction
LabelIntersectActionsHandle overlapping labels (Hide)
AxisLineVisible
boolShow/hide axis line
属性类型说明
MajorGridlinesVisible
bool显示/隐藏主网格线
MinorGridlinesVisible
bool显示/隐藏次网格线
MinorGridlinesCount
int主网格线之间的次网格线数量
LabelPlacement
LabelPlacement标签在图表区域内侧还是外侧
LabelIntersectAction
LabelIntersectActions重叠标签处理策略(隐藏)
AxisLineVisible
bool显示/隐藏轴线

Common Use Cases

常见使用场景

High-Frequency Circuit Analysis

高频电路分析

Use impedance mode to analyze RF circuit behavior:
  • Plot measured S-parameters
  • Visualize matching network performance
  • Analyze antenna impedance characteristics
使用阻抗模式分析RF电路行为:
  • 绘制测量得到的S参数
  • 可视化匹配网络性能
  • 分析天线阻抗特性

Transmission Line Visualization

传输线可视化

Display transmission line parameters:
  • Show normalized impedance along a transmission line
  • Plot reflection coefficients
  • Visualize VSWR circles
展示传输线参数:
  • 显示传输线沿线的归一化阻抗
  • 绘制反射系数
  • 可视化驻波比圆

Multiple Trace Comparison

多迹线对比

Compare different circuit configurations:
  • Add multiple series with different LegendText
  • Use different colors for each series
  • Enable legend with ToggleSeriesVisible for interactive comparison
对比不同电路配置:
  • 添加多个带有不同LegendText的系列
  • 为每个系列设置不同颜色
  • 启用带ToggleSeriesVisible功能的图例实现交互式对比

Interactive Data Exploration

交互式数据探索

Provide users with exploration tools:
  • Enable tooltips with custom formatting
  • Use TooltipOpening event for dynamic content
  • Add data labels for key points
  • Allow legend-based series toggling
为用户提供探索工具:
  • 启用带自定义格式的工具提示
  • 使用TooltipOpening事件实现动态内容
  • 为关键点位添加数据标签
  • 支持基于图例的系列切换

Custom Marker Visualization

自定义标记可视化

Highlight specific data points:
  • Use different marker types per series
  • Add image markers for special points
  • Customize marker sizes and colors
高亮特定数据点:
  • 每个系列使用不同的标记类型
  • 为特殊点位添加图片标记
  • 自定义标记尺寸和颜色

Troubleshooting

故障排查

Data Not Appearing

数据不显示

  • Ensure
    DataSource
    is set and contains valid data
  • Verify
    ResistanceMember
    and
    ReactanceMember
    match property names exactly (case-sensitive)
  • Check that data values are within valid ranges
  • Confirm series is added to
    sfSmithChart.Series
    collection
  • 确认
    DataSource
    已设置且包含有效数据
  • 验证
    ResistanceMember
    ReactanceMember
    与属性名完全匹配(区分大小写)
  • 检查数据值在有效范围内
  • 确认系列已添加到
    sfSmithChart.Series
    集合中

Performance Issues with Large Datasets

大数据集性能问题

  • Wrap point additions in
    BeginUpdate()
    /
    EndUpdate()
    blocks
  • Disable markers if not needed (
    MarkerVisible = false
    )
  • Consider data sampling for extremely large datasets
  • 将数据点添加操作包裹在
    BeginUpdate()
    /
    EndUpdate()
    块中
  • 不需要标记时关闭标记(
    MarkerVisible = false
  • 超大数据集建议采用数据采样

Labels Overlapping

标签重叠

  • Use
    LabelIntersectAction = LabelIntersectActions.Hide
    to auto-hide overlapping labels
  • Adjust chart size or use
    LabelPlacement.Inside
    for more space
  • Smart alignment automatically handles data label collisions
  • 使用
    LabelIntersectAction = LabelIntersectActions.Hide
    自动隐藏重叠标签
  • 调整图表尺寸或使用
    LabelPlacement.Inside
    获得更多空间
  • 智能对齐会自动处理数据标签重叠问题

Legend Not Showing

图例不显示

  • Set
    chart.Legend.Visible = true
  • Ensure each series has
    LegendText
    property set
  • Check that chart has enough space for legend based on
    DockPosition
  • 设置
    chart.Legend.Visible = true
  • 确认每个系列都设置了
    LegendText
    属性
  • 根据
    DockPosition
    检查图表是否有足够空间展示图例