C#chart图表的应用

本文介绍如何使用C#编程语言通过数据源为图表工具绑定数据,实现数据的可视化展示。具体步骤包括创建查询数据的类,从数据库中选取前五辆车的数据,包括车名、油耗、功率和价格,并将这些数据绑定到图表上进行展示。

在图表中,x轴代表类别,y轴代表数值(好比类与他们的属性)

image

这是数据库中的数据,下面我们选前5辆车,在图表中显示他们的名字,油耗,功率,价格

image

创建查询数据的类

 

复制代码

class CarDA
    {
        public List < CarData> select()
        {
            List < CarData > list= null;
            SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select top 5* from car";
            SqlDataReader dr= cmd.ExecuteReader() ;
            if(dr.HasRows)
            {
                list = new List<CarData>();
                while(dr.Read())
                {
                CarData data = new CarData();
                data = new CarData();
                data.Name = dr["name"].ToString();
                data.Oil=(decimal)dr["oil"];
                data.Powers=dr["powers"].ToString();
                data.Price=(decimal )dr["price"];
                list.Add(data);
                }
            }
            return list;
            cmd.Dispose();
            conn.Close();
        }
    }

复制代码

 

复制代码

class CarData
    {
        private string _name;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        private decimal _oil;

        public decimal Oil
        {
            get { return _oil; }
            set { _oil = value; }
        }
        private string  _powers;

        public string  Powers
        {
            get { return _powers; }
            set { _powers = value; }
        }
        private decimal _price;

        public decimal Price
        {
            get { return _price; }
            set { _price = value; }
        }
    }

复制代码

窗体一加载,给图表绑定数据源,注意:绑定时以一列为单位,指明每列的x轴和y轴分别对应数据源的属性名(也就是泛型集合里面对象的属性名)。注意:指定的必须是属性名,不能是字段名,这也要求数据源的对象的字段必须封装,必须有属性。

这里体现了C#编程的封装特性,我们给chart图表工具一个数据源,让它帮我们形象的展示数据,我们并不关心到底是怎样实现的,我们只告诉它需要显示那些数据,剩下的就交给chart图表工具了。

复制代码

private void Form1_Load(object sender, EventArgs e)
        {
            List<CarData> list = new CarDA().select();
            if (list != null)
            {
                chart1.DataSource = list;
                chart1.Series["Series1"].XValueMember="name";
                chart1.Series["Series1"].YValueMembers = "oil";
            }

        }
 

复制代码

运行结果

image

在Series属性里,可以设置每列的显示名字,并添加新列

 

image

 

复制代码

private void Form1_Load(object sender, EventArgs e)
        {
            List<CarData> list = new CarDA().select();
            if (list != null)
            {
                chart1.DataSource = list;
                chart1.Series["油耗"].XValueMember="name";
                chart1.Series["油耗"].YValueMembers = "oil";
                chart1.Series["功率"].XValueMember = "name";
                chart1.Series["功率"].YValueMembers = "powers";
                chart1.Series["价格"].XValueMember = "name";
                chart1.Series["价格"].YValueMembers = "price";
            }

        }

复制代码

image

### 创建和使用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"; ``` 以上代码片段展示了一些常见的自定义操作;实际上可以根据具体应用场景灵活运用更多高级特性。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值