winform 中 Devexpress Charts动态添加数据

参考:
Devexpress Charts动态添加数据:
https://www.cnblogs.com/zhangruisoldier/p/4226950.html
DevExpress 图表控件:ChartControl 动态绑定数据
https://blog.csdn.net/keenweiwei/article/details/7432314

效果图:
在这里插入图片描述
代码:

using System.Collections.Generic;
using DevExpress.XtraCharts;

namespace WinFormCharts
{
    public partial class FrmMain : DevExpress.XtraEditors.XtraForm
    {
        private Dictionary<string, double> chartPieDataDic = new Dictionary<string, double>();
        private Dictionary<string, double> chartBarDataDic = new Dictionary<string, double>();
        public FrmMain()
        {
            InitializeComponent();
            InitPieChartData();
            InitBarChartData();
            showPie();
            showPoint();
            showBar();
            showLine();
        }

        /// <summary>
        /// 扇形图
        /// </summary>
        private void showPie()
        {
            ChartTitle title = new ChartTitle();
            title.Text = "全省话务分析饼图-话务类型分布";

            chartControl1.Titles.Clear();
            chartControl1.Titles.Add(title);
            Series series1 = new Series("话务类型", ViewType.Pie);
            ((PiePointOptions)series1.PointOptions).PointView = PointView.ArgumentAndValues;

            foreach (KeyValuePair<string, double> keyvalue in chartPieDataDic)
            {
                series1.Points.Add(new SeriesPoint(keyvalue.Key, new double[] { keyvalue.Value }));
            }

            chartControl1.Series.Clear();
            chartControl1.Series.Add(series1);
        }

        /// <summary>
        /// 柱状图
        /// </summary>
        private void showBar()
        {
            try
            {
                ChartTitle title = new ChartTitle();
                title.Text = "市网元容量增长率统计分析柱图";

                chartControl2.Titles.Clear();
                chartControl2.Titles.Add(title);

                Series series2 = new Series("大连", ViewType.Bar);
                Series series3 = new Series("沈阳", ViewType.Bar);
                Series series4 = new Series("本溪", ViewType.Bar);
                foreach (KeyValuePair<string, double> kvp in chartBarDataDic)
                {
                    series2.Points.Add(new SeriesPoint(kvp.Key, new double[] { kvp.Value }));
                    series3.Points.Add(new SeriesPoint(kvp.Key, new double[] { kvp.Value + 0.08 }));
                    series4.Points.Add(new SeriesPoint(kvp.Key, new double[] { kvp.Value + 0.02 }));
                }


                chartControl2.Series.Clear();
                chartControl2.Series.Add(series2);
                chartControl2.Series.Add(series3);
                chartControl2.Series.Add(series4);

                chartControl2.Legend.Visible = true; // 显示标签(旁边的标注哪个颜色代表哪个城市)
            }
            catch { }
        }

        /// <summary>
        /// 折线图
        /// </summary>
        private void showLine()
        {
            ChartTitle title = new ChartTitle();
            title.Text = "线图";
            chartControl3.Titles.Clear();
            chartControl3.Titles.Add(title);

            Series series1 = new Series("辽宁", ViewType.Line);
            series1.ArgumentScaleType = ScaleType.Numerical;

            series1.Points.Add(new SeriesPoint(1, new double[] { 10 }));
            series1.Points.Add(new SeriesPoint(2, new double[] { 12 }));
            series1.Points.Add(new SeriesPoint(3, new double[] { 14 }));
            series1.Points.Add(new SeriesPoint(4, new double[] { 17 }));
            series1.Points.Add(new SeriesPoint(5, new double[] { 21 }));
            series1.Points.Add(new SeriesPoint(6, new double[] { 26 }));
            series1.Points.Add(new SeriesPoint(7, new double[] { 29 }));
            series1.Points.Add(new SeriesPoint(8, new double[] { 30 }));

            ((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle;


            Series series2 = new Series("山东", ViewType.Line);
            series2.ArgumentScaleType = ScaleType.Numerical; //这句话必须有,否则点画不出来.
            ((LineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.DashDotDot;
            series2.Points.Add(new SeriesPoint(1, new double[] { 4 }));
            series2.Points.Add(new SeriesPoint(2, new double[] { 14 }));
            series2.Points.Add(new SeriesPoint(3, new double[] { 17 }));
            series2.Points.Add(new SeriesPoint(4, new double[] { 22 }));
            series2.Points.Add(new SeriesPoint(5, new double[] { 20 }));
            series2.Points.Add(new SeriesPoint(6, new double[] { 15 }));
            series2.Points.Add(new SeriesPoint(7, new double[] { 18 }));
            series2.Points.Add(new SeriesPoint(8, new double[] { 11 }));

            ((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross;

            chartControl3.Series.Clear();
            chartControl3.Series.Add(series1);
            chartControl3.Series.Add(series2);
            chartControl3.Legend.Visible = true;
        }

        private void InitPieChartData()
        {
            try
            {
                chartPieDataDic.Add("大连", 0.2);
                chartPieDataDic.Add("沈阳", 0.26);
                chartPieDataDic.Add("锦州", 0.15);
                chartPieDataDic.Add("盘锦", 0.15);
                chartPieDataDic.Add("本溪", 0.1);
                chartPieDataDic.Add("抚顺", 0.12);
                chartPieDataDic.Add("营口", 0.02);
            }
            catch { }
        }
        private void InitBarChartData()
        {
            try
            {
                chartBarDataDic.Add("2001", 0.05);
                chartBarDataDic.Add("2002", 0.02);
                chartBarDataDic.Add("2003", 0.08);
                chartBarDataDic.Add("2004", 0.15);
                chartBarDataDic.Add("2005", 0.1);
                chartBarDataDic.Add("2006", 0.3);
                chartBarDataDic.Add("2007", 0.2);
                chartBarDataDic.Add("2008", 0.1);
            }
            catch { }
        }

        /// <summary>
        /// 点状图
        /// </summary>
        private void showPoint()
        {
            ChartTitle title = new ChartTitle();
            title.Text = "点图";
            chartControl4.Titles.Clear();
            chartControl4.Titles.Add(title);

            Series series1 = new Series("上线人数", ViewType.Point);
            series1.ArgumentScaleType = ScaleType.Numerical;

            series1.Points.Add(new SeriesPoint(1, new double[] { 20 }));
            series1.Points.Add(new SeriesPoint(2, new double[] { 12 }));
            series1.Points.Add(new SeriesPoint(3, new double[] { 11 }));
            series1.Points.Add(new SeriesPoint(4, new double[] { 17 }));
            series1.Points.Add(new SeriesPoint(5, new double[] { 21 }));
            series1.Points.Add(new SeriesPoint(6, new double[] { 21 }));
            series1.Points.Add(new SeriesPoint(7, new double[] { 29 }));
            series1.Points.Add(new SeriesPoint(8, new double[] { 30 }));

            ((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle;


            Series series2 = new Series("下线人数", ViewType.Point);
            series2.ArgumentScaleType = ScaleType.Numerical; //这句话必须有,否则点画不出来.

            series2.Points.Add(new SeriesPoint(1, new double[] { 4 }));
            series2.Points.Add(new SeriesPoint(2, new double[] { 14 }));
            series2.Points.Add(new SeriesPoint(3, new double[] { 17 }));
            series2.Points.Add(new SeriesPoint(4, new double[] { 22 }));
            series2.Points.Add(new SeriesPoint(5, new double[] { 20 }));
            series2.Points.Add(new SeriesPoint(6, new double[] { 15 }));
            series2.Points.Add(new SeriesPoint(7, new double[] { 18 }));
            series2.Points.Add(new SeriesPoint(8, new double[] { 11 }));

            ((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross;

            chartControl4.Series.Clear();
            chartControl4.Series.Add(series1);
            chartControl4.Series.Add(series2);
            chartControl4.Legend.Visible = true;
        }

    }
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Winform+DevExpress分页控件是一种用于Windows桌面应用程序开发的控件,它可以帮助开发者实现数据分页显示的功能。DevExpress是一个知名的UI控件库,它提供了丰富的控件和组件,可以大大提高开发效率和用户体验。分页控件可以帮助用户快速浏览大量数据,同时也可以提高应用程序的性能和响应速度。 ### 回答2: WinForm DevExpress分页控件是一个强大的工具,它使用户能够快速而可靠地管理大量数据。该控件可以在WinForm应用程序轻松实现常见的数据分页方案,并且具有灵活的布局和样式选项。以下是一些关于这个控件的主要特点和功能: 1. 高度可定制:可以自定义控件的行数、页码样式、默认选颜色等; 2. 支持大数据量:对于海量数据,控件可以极快地将其分页,显示出一页一页数据; 3. 轻松互动和导航:用户可以轻松进行分页,并且快速能够找到所需的数据; 4. 灵活的事件和属性:提供了一系列事件和属性,便于用户轻松地自定义控件的行为和外观; 5. 查找和过滤功能:控件允许用户按照特定标准进行筛选和查找数据; 6. 高度可定制的主题:用户可以自定义主题、颜色和字体等特性,使控件更符合实际的需求。 需要注意的是,WinForm DevExpress分页控件可能会对一些软件开发者提出一些挑战,因此在使用过程一定要对其进行认真学习和测试。不过,如果合理使用,该控件可以大大提高数据管理的效率和质量,为软件开发者带来极大的价值。 ### 回答3: WinForm DevExpress是一种方法,用于创建用户友好的Windows桌面应用程序,包括数据绑定和视觉效果。在WinForm可以使用许多控件来开发应用程序,例如文本框、按钮、标签、复选框等,这些控件可用于显示数据和收集用户输入。其一个重要的控件就是分页控件。 分页控件在WinForm应用程序非常常见,因为它允许用户浏览大量的数据,并按照需要进行分页。DevExpress分页控件提供了丰富的功能,可以让用户以非常灵活的方式对分页进行定制。 在DevExpress分页控件,我们可以设置每页显示的记录数,可以选择要显示的页码,还可以自定义分页按钮的外观和行为。此外,分页控件还可以根据需要自动调整页面大小,并支持跳转到指定页码。 与其他分页控件相比,DevExpress分页控件具有较高的灵活性和可定制性。通过使用分页控件,我们可以使应用程序更加用户友好,让用户以最高效和最直观的方式来浏览和处理数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值