Winform控件:Chart

在 WinForms 中使用 Chart 控件可以实现各种数据可视化,包括折线图、柱状图、饼图等。以下是一些基本的使用方法和示例代码,帮助你快速上手。

1.1 基本配置

设置图表类型
cs 复制代码
// 设置图表类型为柱状图
chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;

// 设置图表类型为折线图
chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;

// 设置图表类型为饼图
chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
添加数据点
cs 复制代码
// 添加数据点
chart1.Series[0].Points.AddXY("Label1", 10);
chart1.Series[0].Points.AddXY("Label2", 20);
chart1.Series[0].Points.AddXY("Label3", 30);

1.2 配置图表样式

设置标题
cs 复制代码
// 设置图表标题
chart1.Titles.Add("My Chart Title");
设置坐标轴标签
cs 复制代码
// 设置 X 轴标签
chart1.ChartAreas[0].AxisX.Title = "X Axis";

// 设置 Y 轴标签
chart1.ChartAreas[0].AxisY.Title = "Y Axis";
设置图例
cs 复制代码
// 添加图例
chart1.Legends.Add("Legend1");

1.3 示例代码

折线图示例
cs 复制代码
public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
        InitializeChart();
    }

    private void InitializeChart()
    {
        // 设置图表类型为折线图
        chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;

        // 添加数据点
        chart1.Series[0].Points.AddXY("Label1", 10);
        chart1.Series[0].Points.AddXY("Label2", 20);
        chart1.Series[0].Points.AddXY("Label3", 30);

        // 设置图表标题
        chart1.Titles.Add("My Line Chart");

        // 设置坐标轴标签
        chart1.ChartAreas[0].AxisX.Title = "X Axis";
        chart1.ChartAreas[0].AxisY.Title = "Y Axis";

        // 添加图例
        chart1.Legends.Add("Legend1");
    }
}
柱状图示例
cs 复制代码
public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
        InitializeChart();
    }

    private void InitializeChart()
    {
        // 设置图表类型为柱状图
        chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;

        // 添加数据点
        chart1.Series[0].Points.AddXY("Label1", 10);
        chart1.Series[0].Points.AddXY("Label2", 20);
        chart1.Series[0].Points.AddXY("Label3", 30);

        // 设置图表标题
        chart1.Titles.Add("My Bar Chart");

        // 设置坐标轴标签
        chart1.ChartAreas[0].AxisX.Title = "X Axis";
        chart1.ChartAreas[0].AxisY.Title = "Y Axis";

        // 添加图例
        chart1.Legends.Add("Legend1");
    }
}
饼图示例
cs 复制代码
public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
        InitializeChart();
    }

    private void InitializeChart()
    {
        // 设置图表类型为饼图
        chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;

        // 添加数据点
        chart1.Series[0].Points.AddXY("Label1", 10);
        chart1.Series[0].Points.AddXY("Label2", 20);
        chart1.Series[0].Points.AddXY("Label3", 30);

        // 设置图表标题
        chart1.Titles.Add("My Pie Chart");

        // 添加图例
        chart1.Legends.Add("Legend1");
    }
}

1.4 高级配置

动态数据更新
cs 复制代码
private void timer1_Tick(object sender, EventArgs e)
{
    // 动态添加数据点
    chart1.Series[0].Points.AddXY(DateTime.Now.ToString("HH:mm:ss"), new Random().Next(0, 100));

    // 限制数据点数量
    if (chart1.Series[0].Points.Count > 10)
    {
        chart1.Series[0].Points.RemoveAt(0);
    }
}
自定义样式
cs 复制代码
// 设置数据点颜色
chart1.Series[0].Color = Color.Red;

// 设置数据点标记
chart1.Series[0].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
chart1.Series[0].MarkerColor = Color.Blue;

Chart 控件功能强大,支持多种图表类型和丰富的配置选项。通过上述示例代码,你可以快速实现基本的图表功能,并根据需要进行高级配置。

相关推荐
牛哇网络工作室10 小时前
UnityHDRP写实数字人全流程基础5—语音输入和语音识别
android·unity·c#·游戏引擎·aigc·语音识别·xcode
zlinear数据采集卡20 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
深澈Vincel1 天前
我用 C# + WebView2 做了一个针对“流氓软件”的“一键清理工具“:架构实践与踩坑记录
c#
zlinear数据采集卡1 天前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
kingwebo'sZone1 天前
C# 根据公式计算的方法
开发语言·c#
阿部多瑞 ABU1 天前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
条形码D1 天前
DRG综合管理分析系统-目前已经支持CHS-DRG3.0
c#·drg·3.0分组器·drg分组器·chs-drg3.0分组器
Alex Gram2 天前
数据库同步工具PanguSync图文教程
java·mysql·postgresql·sqlserver·c#·数据库同步软件·数据库同步工具
头茬韭菜2 天前
第 10 篇:「Fluss 实战案例集」—— 完整解决方案与最佳实践
c#·linq·fluss
淡海水2 天前
01-05-运行时-JIT优化全景-内联去虚拟化边界检查消除
windows·c#·虚拟化·jit·内联·边界检查消除