C# Chart图表应用

1,Chart简介

        Chart控件是微软自带的一种图形可视化组件,使用简单灵活。在.NET4.0之后(即VS2010之后)已集成在了VS里面,直接拖拽控件到窗体即可使用。
需要使用命名空间:using System.Windows.Forms.DataVisualization.Charting(拖拽控件时自动添加)。

        一个 Chart 可绘制多个 ChartArea,每个 ChartArea 可绘制多条 Series。ChartArea 是绘图区域,一个Chart可以由多个 ChartArea 叠加而成,Series 是画在 ChartAarea 上的图形(例如折线图中的折线),Series 英文意思是“序列、连续”,其实就是数据线,它可以是曲线、点、柱形、条形、饼图...。

        当 Chart 当数据非常多的时候可以通过鼠标选择查看区域,进一步拖拽横纵向滚动条来缩小曲线图查看,关联属性是Chart.ChartArea.Axes.XAxis.ScaleView中的

1.1分布图。

1.2,多个ChartArea,多个Series 的Chart示例

Chart中有单个ChartArea,每个ChartArea有1个Series:

Chart中有单个ChartArea,每个ChartArea有多个Series:

Chart中有多个ChartArea,每个ChartArea有1个Series:

Chart中有多个ChartArea,每个ChartArea有多个Series:

2,属性介绍。

2.1,ChartAreas:获取用于存储 ChartArea 对象的只读 ChartAreaCollection 对象。 

  • ChartAreaCollection 类:表示 ChartArea 对象的集合。
    • Count:获取 Collection<T> 中实际包含的元素数。
    • Item[Int32]:获取或设置指定索引处的元素。
    • Item[String]:获取或设置具有指定名称的图表元素。
  • ChartArea 类:表示图表图像上的图表区域。
    • AxisX:获取或设置表示主 X 轴的 Axis 对象。
    • AxisY:获取或设置表示主 Y 轴的 Axis 对象。
    • BackColor:获取或设置 ChartArea 对象的背景色。
    • BackGradientStyle:获取或设置图表区域的背景渐变方向,还确定是否使用渐变。
    • ShadowColor:获取或设置 ChartArea 对象的阴影颜色。
    • ShadowOffset:获取或设置 ChartArea 对象的阴影偏移量(以像素为单位)。
  • Axis 类:提供管理 Chart 控件中的轴的方法和属性。
    • MajorGrid:获取或设置用于设置轴的主要网格线属性的 Grid 对象。
    • Title:获取或设置轴的标题。
    • ArrowStyle:获取或设置二维轴的箭头样式;此样式不适用于三维图表区域。
    • Interval:获取或设置轴的间隔。(坐标轴数据间隔)
    • IntervalOffset:获取或设置轴的间隔偏移量。(坐标轴第一个数据距离原点的间隔)
    • Maximum:获取或设置轴的最大值。
    • Minimum:获取或设置轴的最小值。
  • Grid 类:提供用于管理 Axis 对象的主要和次要网格的方法和属性。
    • Interval:获取或设置主要网格线或次要网格线之间的间隔。(相邻两个网格线间的间隔,int)
    • IntervalType:获取或设置主要网格线或次要网格线的间隔类型。(计算单位)
    • IntervalOffset:获取或设置网格线的偏移量。(第一个网格线偏移坐标轴的间隔,int)
    • IntervalOffsetType:获取或设置主要网格线和次要网格线的间隔偏移量类型。(计算单位)
    • LineColor:获取或设置网格线颜色。
    • LineDashStyle:获取或设置网格的线型。
    • LineWidth:获取或设置主要网格线和次要网格线的线条宽度。
Chart1.ChartAreas[“ChartArea1”].Name = “图表区域”;

//设置是否自动设置合适的图表元素
    Chart1.ChartAreas[“图表区域”].Position.Auto = true;

//设置图表的阴影颜色
    Chart1.ChartAreas[“图表区域”].ShadowColor = System.Drawing.Color.YellowGreen;

//设置图表元素左上角对应的X坐标
    Chart1.ChartAreas[“图表区域”].Position.X=5.089137F;

//设置图表元素左上角对应的Y坐标
    Chart1.ChartAreas[“图表区域”].Position.Y = 5.895753F;

//设置图表元素的高度
    Chart1.ChartAreas[“图表区域”].Position.Height = 86.76062F;

//设置图表元素的宽度
    Chart1.ChartAreas[“图表区域”].Position.Width = 88F;

//设置是否在内部绘图区域中自动设置合适的图表元素
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Auto = false;

//设置图表元素内部绘图区域的高度
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Height = 85F;

//设置图表元素内部绘图区域的宽度
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Width = 86F;

//设置图表元素内部绘图区域左上角对应的X坐标
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.X = 8.3969F;

//设置图表元素内部绘图区域左上角对应的Y坐标
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Y = 3.63068F;

//设置三维图表的旋转角度
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Inclination = 10;

//设置条形图或柱形图的的数据系列是否为簇状
    Chart1.ChartAreas[“图表区域”].Area3DStyle.IsClustered = true;

//设置图表区域是否使用等角投影显示
    Chart1.ChartAreas[“图表区域”].Area3DStyle.IsRightAngleAxes = true;

//设置图表的照明类型(色调随旋转角度改变而改变,不应用照明,色调不改变)
    Chart1.ChartAreas[“图表区域”].Area3DStyle.LightStyle ==System.Web.UI.DataVisualization.Charting.LightStyle.Realistic;

//设置三维图区的透视百分比
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Perspective = 50;

//设置三维图表区域绕垂直轴旋转的角度
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Rotation = 60;

//设置三维图区中显示的墙的宽度
    Chart1.ChartAreas[“图表区域”].Area3DStyle.WallWidth = 0;

//设置是否显示3D效果
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Enable3D = true;

//设置图表区域的背景颜色
    Chart1.ChartAreas[“图表区域”].BackColor = System.Drawing.Color.Green;

//指定图表元素的渐变样式(中心向外,从左到右,从上到下等等)
    Chart1.ChartAreas[“图表区域”].BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.LeftRight;

//设置图表区域的辅助颜色
    Chart1.ChartAreas[“图表区域”].BackSecondaryColor = System.Drawing.Color.White;

//设置图表区域边框颜色
### 创建和使用C#图表控件 #### 使用System.Windows.Forms.DataVisualization.Charting库创建饼图和柱形图 为了在C#中创建图表,可以利用.NET Framework自带的`System.Windows.Forms.DataVisualization.Charting`命名空间下的类[^1]。此命名空间包含了用于绘制各种类型的二维和三维图表所需的一切工具。 #### 添加必要的引用 要在项目中使用图表功能,需先确保已添加对`System.Windows.Forms.DataVisualization.dll`程序集的引用。这通常可以通过Visual Studio中的NuGet包管理器轻松完成,或者手动添加对上述DLL文件的引用[^2]。 #### 初始化图表对象 下面是一个简单的例子,展示了如何初始化一个新的图表对象,并设置其基本属性: ```csharp using System; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; public class ChartExample : Form { private void InitializeChart() { // 创建新的图表实例 var chart = new Chart(); // 设置图表大小 chart.Size = new System.Drawing.Size(800, 600); // 将图表添加到窗体上 this.Controls.Add(chart); // 定义图表区域 var area = new ChartArea("MainArea"); chart.ChartAreas.Add(area); } } ``` #### 配置系列(Series) 为了让图表显示有意义的数据,需要定义至少一个`Series`来表示要可视化的数据集合。每个`Series`都可以有自己的样式配置选项,比如颜色、线条宽度等。 ```csharp // 向图表添加新系列 var series = new Series("SampleData") { Color = System.Drawing.Color.Blue }; series.Points.AddXY("Category A", 30); // X轴为类别名称,Y轴为数值 series.Points.AddXY("Category B", 70); chart.Series.Add(series); ``` #### 自定义外观 除了基础的功能外,还可以进一步调整图表的整体布局以及各个组件的具体表现形式。例如修改坐标轴标签文字方向、改变网格线的颜色等等。 ```csharp // 修改X轴字体角度 chart.ChartAreas["MainArea"].AxisX.LabelStyle.Angle = -45; // 更改Y轴标题 chart.ChartAreas["MainArea"].AxisY.Title = "Value"; ``` 以上代码片段展示了一些常见的自定义操作;实际上可以根据具体应用场景灵活运用更多高级特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值