C# chart 饼图
时间: 2025-04-02 21:23:30 浏览: 35
### 如何用 C# 创建饼图 Chart 控件
在 C# 中,可以通过 `System.Windows.Forms.DataVisualization.Charting` 命名空间下的 `Chart` 控件来创建饼图。以下是详细的说明以及一个完整的代码示例。
#### 饼图的基础概念
- **Series**: 表示一组数据系列,在饼图中通常表示不同的部分及其对应的数值。
- **ChartAreas**: 定义图表的绘图区域,虽然饼图一般只需要一个绘图区,但在复杂场景下也可以定义多个绘图区[^4]。
- **Points**: 数据点,用于存储具体的数值和标签信息。
- **CustomProperties**: 可以用来设置一些高级属性,例如调整饼图的半径或样式[^5]。
#### 添加 Chart 控件到窗体
要使用 Chart 控件,首先需要将其添加到 WinForms 应用程序中:
1. 打开 Visual Studio 并新建一个 Windows Forms App (.NET Framework) 项目。
2. 在工具箱中找到 `Chart` 控件并拖放到窗体上。
3. 如果工具箱中没有显示该控件,则可以在菜单栏选择 `工具 -> 选择项...` 来启用它[^3]。
#### 设置 Chart 的基本属性
为了创建一个简单的饼图,可以按照以下步骤配置 Chart 控件:
```csharp
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace PieChartExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CreatePieChart();
}
private void CreatePieChart()
{
// 初始化 Chart 控件
Chart pieChart = new Chart();
pieChart.Dock = DockStyle.Fill;
// 添加 Series 到 Chart
Series series = new Series("Data");
series.ChartType = SeriesChartType.Pie; // 设置为饼图类型
// 准备数据
List<string> labels = new List<string>() { "Apple", "Banana", "Cherry" };
List<int> values = new List<int>() { 30, 50, 20 };
for (int i = 0; i < labels.Count; i++)
{
series.Points.AddXY(labels[i], values[i]);
}
// 自定义外观
series["PieLabelStyle"] = "Disabled"; // 关闭默认标签
series.CustomProperties = "DoughnutRadius=60, PieDrawingStyle=Concave";
// 将 Series 绑定到 ChartArea
ChartArea chartArea = new ChartArea("MainArea");
pieChart.ChartAreas.Add(chartArea);
pieChart.Series.Add(series);
this.Controls.Add(pieChart); // 将 Chart 添加到窗体
}
}
}
```
#### 解析代码逻辑
1. 使用 `new Chart()` 方法初始化一个新的 Chart 对象,并将其停靠模式设为填充整个容器。
2. 创建一个名为 `"Data"` 的新序列 (`Series`),并将它的图表类型设定为 `SeriesChartType.Pie`[^1]。
3. 向序列中添加数据点,其中 X 轴代表类别名称(如水果种类),Y 轴代表其对应的数量。
4. 通过修改 `series.CustomProperties` 属性来自定义饼图的视觉效果,例如调整圆环大小或应用凹面风格。
5. 新建一个 `ChartArea` 实例作为绘图区域,并将序列绑定至该区域。
6. 最后,将完成后的 Chart 控件添加到当前窗体中以便展示。
#### 运行结果
运行上述代码后,将会看到一个包含三个扇形分区的饼图,分别标注为 Apple、Banana 和 Cherry,它们的比例由各自的数据值决定。
---
###
阅读全文
相关推荐



















