在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → Dev ChartControl图表展示控件用法展示

Dev ChartControl图表展示控件用法展示

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:17.78M
  • 下载次数:251
  • 浏览次数:3606
  • 发布时间:2017-12-02
  • 实例类别:C#语言基础
  • 发 布 人:feifei520
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 图表 c chart 控件

实例介绍

【实例简介

【实例截图】

from clipboard


from clipboard


from clipboard

from clipboard


from clipboard

from clipboard

【核心代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraCharts;
using DevExpress.XtraEditors;

namespace ChartControlTest
{
    public partial class CrimeForm : DevExpress.XtraEditors.XtraForm
    {
        GetNewData getNewData = new GetNewData();
        private int seletedIndex = 0;
        public CrimeForm()
        {
            InitializeComponent();
            BindDataByPrivince();
        }
        private void BindDataByPrivince()
        {
            var dt = GetCrimEventByProvince();
            chartControl1.Series.Clear();
            var series1 = CreateNewSeries("各省近年来暴力事件汇总", ViewType.Bar, dt, "StrikeWhere", "EventCount");
            chartControl1.Series.Add(series1);
            chartControl2.Series.Clear();
            var series2 = CreateNewSeries("各省近年来暴力事件汇总", ViewType.Pie3D, dt, "StrikeWhere", "EventCount");
            chartControl2.Series.Add(series2);
            chartControl3.Series.Clear();
            var series3 = CreateNewSeries("各省近年来暴力事件汇总", ViewType.Line, dt, "StrikeWhere", "EventCount");
            chartControl3.Series.Add(series3);
        
            //// 柱状图里的第一个柱 
            //var series1 = new Series("各省近年来暴力事件汇总", ViewType.Bar)
            //                  {
            //                      DataSource = GetCrimEventByProvince(),
            //                      ArgumentScaleType = ScaleType.Qualitative,
            //                      ArgumentDataMember = "StrikeWhere",
            //                      ValueScaleType = ScaleType.Numerical,
            //                      ShowInLegend = true,
            //                      Label = { Visible = true }
            //                  };
            //series1.ValueDataMembers.AddRange(new string[] { "EventCount" });
            //chartControl1.Series.Add(series1);

            //chartControl2.Series.Clear();
            //var series2 = new Series("各省近年来暴力事件汇总", ViewType.Pie3D)
            //                  {
            //                      DataSource = GetCrimEventByProvince(),
            //                      ArgumentScaleType = ScaleType.Qualitative,
            //                      ArgumentDataMember = "StrikeWhere",
            //                      ValueScaleType = ScaleType.Numerical,
            //                      ShowInLegend = true,
            //                      Label = { Visible = true },
            //                      LegendPointOptions = { PointView = PointView.ArgumentAndValues }
            //                  };
            //series2.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent;

            //series2.ValueDataMembers.AddRange(new string[] { "EventCount" });
            //chartControl2.Series.Add(series2);

            //chartControl3.Series.Clear();
            //var series3 = new Series("各省近年来暴力事件汇总", ViewType.Line)
            //{
            //    DataSource = GetCrimEventByProvince(),
            //    ArgumentScaleType = ScaleType.Qualitative,
            //    ArgumentDataMember = "StrikeWhere",
            //    ValueScaleType = ScaleType.Numerical,
            //    ShowInLegend = true,
            //    Label = { Visible = true }
            //};

            //series3.ValueDataMembers.AddRange(new string[] { "EventCount" });
            //chartControl3.Series.Add(series3);

        }

        private Series CreateNewSeries(string title, ViewType type, DataTable dt, string argumentDataMemberName, string valueDataMemberName)
        {
            var series = new Series(title, type)
            {
                DataSource = dt,
                ArgumentScaleType = ScaleType.Qualitative,
                ArgumentDataMember = argumentDataMemberName,
                ValueScaleType = ScaleType.Numerical,
                ShowInLegend = true,
                Label = { Visible = true }
            };
            if (type == ViewType.Pie3D)
            {
                series.LegendPointOptions.PointView = PointView.ArgumentAndValues;
                series.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
            }
            series.ValueDataMembers.AddRange(new string[] { valueDataMemberName });
            return series;
        }



        private void BindDataByMonth()
        {
            var dt = GetCrimEventByMouth();
            chartControl1.Series.Clear();
            var series1 = CreateNewSeries("近年来各月暴力事件汇总", ViewType.Bar, dt, "Month", "EventCount");
            chartControl1.Series.Add(series1);
            chartControl2.Series.Clear();
            var series2 = CreateNewSeries("近年来各月暴力事件汇总", ViewType.Pie3D, dt, "Month", "EventCount");
            chartControl2.Series.Add(series2);
            chartControl3.Series.Clear();
            var series3 = CreateNewSeries("近年来各月暴力事件汇总", ViewType.Line, dt, "Month", "EventCount");
            chartControl3.Series.Add(series3);

           
        }


        //按照所在地区分组统计
        private DataTable GetCrimEventByProvince()
        {
            var ds = getNewData.GetDataSourceOfCrime();
            var dt = ds.Tables[0];
            var query = from t in dt.AsEnumerable()
                        group t by new { t1 = t.Field<string>("StrikeWhere") } into m
                        select new
                        {
                            StrikeWhere = m.Key.t1,
                            Count = m.Count()
                            //StaffNum = m.Sum(n => n.Field<int>("StaffNum"))
                        };
            var newDt = getNewData.CreateShowDataTableByPrivince();
            if (query.ToList().Count > 0)
            {
                for (int i = 0; i < query.Count(); i  )
                {
                    var row = newDt.NewRow();
                    row["StrikeWhere"] = query.ToList()[i].StrikeWhere;
                    row["EventCount"] = query.ToList()[i].Count;
                    newDt.Rows.Add(row);
                }
            }
            return newDt;
        }

        //按照月份分组
        private DataTable GetCrimEventByMouth()
        {
            var ds = getNewData.GetDataSourceOfCrime();
            var dt = ds.Tables[0];
            var dtNew = dt.Copy();
            var column = new DataColumn
            {
                DataType = System.Type.GetType("System.Int32"),
                ColumnName = "Month",
                AutoIncrement = false,
                Caption = "所属月份",
                ReadOnly = false,
                Unique = false
            };
            dtNew.Columns.Add(column);
            for (int i = 0; i < dtNew.Rows.Count; i  )
            {
                dtNew.Rows[i]["Month"] = DateTime.Parse(dtNew.Rows[i]["StrikeWhen"].ToString()).Month;
            }
            var query = from t in dtNew.AsEnumerable()
                        group t by new { t1 = t.Field<Int32>("Month") } into m
                        select new
                        {
                            Month = m.Key.t1,
                            Count = m.Count()
                        };
            var newDt = getNewData.CreateShowDataTableByMonth();
            if (query.ToList().Count > 0)
            {
                query = query.ToList().OrderBy(p => p.Month);
                for (int i = 0; i < query.Count(); i  )
                {
                    var row = newDt.NewRow();
                    row["Month"] = string.Format("{0}月", query.ToList()[i].Month);
                    row["EventCount"] = query.ToList()[i].Count;
                    newDt.Rows.Add(row);
                }
            }
            return newDt;
        }

        private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var nowSeltIndex = comboBoxEdit1.SelectedIndex;
            if(nowSeltIndex==seletedIndex) return;
            seletedIndex = nowSeltIndex;
            if (seletedIndex == 0)
                BindDataByPrivince();
            else
                BindDataByMonth();
        }

    }
}

标签: 图表 c chart 控件

实例下载地址

Dev ChartControl图表展示控件用法展示

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 lanlwh 发表于: 2018-06-12 19:27 03
看图挺不错的,可以好好学习学习

支持(0) 盖楼(回复)

第 2 楼 tommymmm 发表于: 2021-04-06 10:29 55
这个控件收费还是免费?

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有2条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警