精华内容
下载资源
问答
  • 数据可视化!C# 实现图标X轴移动显示,可用于信号接收显示(dotnetbar 控件)
  • 本文提出了在C# 环境下3 种生成动态图表的方案,分析了不同方案的优缺点,并研究了实现方案中的关键 技术和实现难点。
  • C#统计图表控件

    2017-09-21 20:54:48
    用于开发统计图,通过一个PICTUREBOX继承,将控件制作成一个统计控件,由X,Y两个轴向,绘制出条形统计图,开发纯属兴趣。添加了LIST数据后就可以显示控件的统计图了。
  • c# 实现动态柱状图

    2013-05-03 09:53:32
    实现柱状图的实时数据显示功能,采用.NET Frame4.0技术,,使用Chart控件实现。
  • C#chart图表源码

    2019-01-05 14:27:58
    微软Chart的详细使用说明,源码详解,是非常好用的作图,做表工具
  • C# 动态添加数据到折线图 chart 动态折线图。 C#窗口程序chart控件实现动态将数据添加到折线图的功能,勾选框可指示数据是否显示 C# chart 动态折线图
  • C# Excel数据生成图表

    2018-04-13 08:31:58
    C#语言winform写的,支持2007以上,导出用的dll是Microsoft.Office.Interop.Excel
  • 内容索引:C#源码,系统相关,磁盘,图表,圆饼图 C# 先检测出指定磁盘的容量,然后根据已使用情况动态生成圆饼图表,就像Windows磁盘属性内的图表一样,直观简洁。你知道用C#如何生成类似图表吗?你会从本示例程序中...
  • c#/c++图形控件很少,像这种高性能数据处理的可视化库很难得。
  • C#绘制图表.rar

    2020-02-03 13:02:29
    C#绘制图表的demo,还有一个相关的pdf,含有注释,绝对完整详细,O(∩_∩)O哈哈~,有问题欢迎留言
  • C#后台动态增加chart控件,根据数据库读取的参数个数动态增加chart控件,并设置图表的属性使其样式美观,且实现动态显示数据
  • C# 漂亮图表 VS2017 windows窗体程序源码(饼状图、柱状图、曲线。。。)
  • C#--图表控件(Chart)

    千次阅读 2018-12-21 19:22:00
    采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图 涉及知识点: Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制。 Chart控件的相关概念: ChartArea,...

    https://blog.csdn.net/qq_20936333/article/details/82020584

    采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图

    涉及知识点:

    • Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制。

    Chart控件的相关概念:

    • ChartArea,表示图表区域,一个Chart可以绘制多个ChartArea,重叠在一起。
    • Series ,表示数据序列,每个ChartArea可以有多个数据线。即,Series属于ChartArea.
    • AxisX,AxisY,表示主坐标轴,每一个ChartArea都有对应的坐标轴,包括主坐标轴,辅坐标轴
    • Queue集合,表示先进先出的集合。

    主要有两个方法:

    • Dequeue() 表示移除并返回位于 System.Collections.Generic.Queue<T> 开始处的对象。
    • Enqueue() 表示将对象添加到 System.Collections.Generic.Queue<T> 的结尾处。
    • Timer ,定时器,定时之行相应的功能,更新数据,刷新图表。

     

    【折线图,是取[0,100]之间的随即数进行填充】:

    【波形图,是取正玄值,并放大50倍,然后上移50】

    
     
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Windows.Forms.DataVisualization.Charting;
    10. namespace WindowsFormsApplication1
    11. {
    12. public partial class RealChart : Form
    13. {
    14. private Queue< double> dataQueue = new Queue< double>( 100);
    15. private int curValue = 0;
    16. private int num = 5; //每次删除增加几个点
    17. public RealChart()
    18. {
    19. InitializeComponent();
    20. }
    21. /// <summary>
    22. /// 初始化事件
    23. /// </summary>
    24. /// <param name="sender"></param>
    25. /// <param name="e"></param>
    26. private void btnInit_Click(object sender, EventArgs e)
    27. {
    28. InitChart();
    29. }
    30. /// <summary>
    31. /// 开始事件
    32. /// </summary>
    33. /// <param name="sender"></param>
    34. /// <param name="e"></param>
    35. private void btnStart_Click(object sender, EventArgs e)
    36. {
    37. this.timer1.Start();
    38. }
    39. /// <summary>
    40. /// 停止事件
    41. /// </summary>
    42. /// <param name="sender"></param>
    43. /// <param name="e"></param>
    44. private void btnStop_Click(object sender, EventArgs e)
    45. {
    46. this.timer1.Stop();
    47. }
    48. /// <summary>
    49. /// 定时器事件
    50. /// </summary>
    51. /// <param name="sender"></param>
    52. /// <param name="e"></param>
    53. private void timer1_Tick(object sender, EventArgs e)
    54. {
    55. UpdateQueueValue();
    56. this.chart1.Series[ 0].Points.Clear();
    57. for( int i= 0;i<dataQueue.Count;i++){
    58. this.chart1.Series[ 0].Points.AddXY((i+ 1), dataQueue.ElementAt(i));
    59. }
    60. }
    61. /// <summary>
    62. /// 初始化图表
    63. /// </summary>
    64. private void InitChart() {
    65. //定义图表区域
    66. this.chart1.ChartAreas.Clear();
    67. ChartArea chartArea1 = new ChartArea( "C1");
    68. this.chart1.ChartAreas.Add(chartArea1);
    69. //定义存储和显示点的容器
    70. this.chart1.Series.Clear();
    71. Series series1 = new Series( "S1");
    72. series1.ChartArea = "C1";
    73. this.chart1.Series.Add(series1);
    74. //设置图表显示样式
    75. this.chart1.ChartAreas[ 0].AxisY.Minimum = 0;
    76. this.chart1.ChartAreas[ 0].AxisY.Maximum = 100;
    77. this.chart1.ChartAreas[ 0].AxisX.Interval = 5;
    78. this.chart1.ChartAreas[ 0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Silver;
    79. this.chart1.ChartAreas[ 0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Silver;
    80. //设置标题
    81. this.chart1.Titles.Clear();
    82. this.chart1.Titles.Add( "S01");
    83. this.chart1.Titles[ 0].Text = "XXX显示";
    84. this.chart1.Titles[ 0].ForeColor = Color.RoyalBlue;
    85. this.chart1.Titles[ 0].Font = new System.Drawing.Font( "Microsoft Sans Serif", 12F);
    86. //设置图表显示样式
    87. this.chart1.Series[ 0].Color = Color.Red;
    88. if (rb1.Checked)
    89. {
    90. this.chart1.Titles[ 0].Text = string.Format( "XXX {0} 显示",rb1.Text);
    91. this.chart1.Series[ 0].ChartType = SeriesChartType.Line;
    92. }
    93. if (rb2.Checked) {
    94. this.chart1.Titles[ 0].Text = string.Format( "XXX {0} 显示", rb2.Text);
    95. this.chart1.Series[ 0].ChartType = SeriesChartType.Spline;
    96. }
    97. this.chart1.Series[ 0].Points.Clear();
    98. }
    99. //更新队列中的值
    100. private void UpdateQueueValue() {
    101. if (dataQueue.Count > 100) {
    102. //先出列
    103. for ( int i = 0; i < num; i++)
    104. {
    105. dataQueue.Dequeue();
    106. }
    107. }
    108. if (rb1.Checked)
    109. {
    110. Random r = new Random();
    111. for ( int i = 0; i < num; i++)
    112. {
    113. dataQueue.Enqueue(r.Next( 0, 100));
    114. }
    115. }
    116. if (rb2.Checked) {
    117. for ( int i = 0; i < num; i++)
    118. {
    119. //对curValue只取[0,360]之间的值
    120. curValue = curValue % 360;
    121. //对得到的正玄值,放大50倍,并上移50
    122. dataQueue.Enqueue(( 50*Math.Sin(curValue*Math.PI / 180))+ 50);
    123. curValue=curValue+ 10;
    124. }
    125. }
    126. }
    127. }
    128. }

     

    关于定时器Timer:

    说明:表示在相同的时间间隔,引发用户自定义的事情 。实现用户需要的功能。本例中是用来定时更新队列中的数据,并刷新图表。

    常用说明:

    1. Interval 时间间隔,以毫秒为单位,本例是300毫秒。
    2. Tick 定时触发的事件,本例对应timer1_Tick事件方法。
    3. Start(),Stop() 表示定时器的启动和停止。Enabled 表示定时器是否启用,默认值为 false,需要手动设置为true。

    展开全文
  • c#制作图表

    2018-04-10 14:23:56
    c# 代码 折线图 柱形图 饼图, 简单易懂, 注释清晰, 适合初学者
  • C#绘制图表

    2017-12-15 18:06:52
    利用C#实现统计表,折线,曲线,点的显示,绘制图表
  • c# 图表控件

    2018-09-29 16:20:41
    c# 图表控件,实时折线图控件
  • asp.net下使用C#实现动态绘制图表

    千次阅读 2012-05-18 15:59:20
    关键的功能是实现一些简单的统计分析,所以要在网页中加一些图表显得清晰直观一些。那么既然完成了,那就简单总结一下,也算对得起这个项目了。估计上去以后也很少在接触asp.net,感觉asp.net还是一门非常有发展前景...

    最近一直在做毕业设计,大体上是一个信息管理系统。关键的功能是实现一些简单的统计分析,所以要在网页中加一些图表显得清晰直观一些。那么既然完成了,那就简单总结一下,也算对得起这个项目了。估计上去以后也很少在接触asp.net,感觉asp.net还是一门非常有发展前景且方便的技术,只是对其还是有太多的限制和歧视存在。

    /*****************************************此处开始正文,前方自动无视**************************************/

    BS结构的程序最头疼的就是web报表的制作,虽然有水晶报表这一控件。

    但是那是付费的,要正版啊亲,再说了我们只是实现简单的功能有木有,所以不用那么复杂吧。

    总之,本文的目的是通过C#提供的System.Drawing2D下的绘图类动态生成报表。

    项目中一共用到了饼图和折现图,所以也就实现了这两个图形的回执功能。

    先来看看类图:


    先放上GraphicBase类和IGraphic的接口:

     /************************************************
     **GraphicBase.cs
     **绘图基类,实现动态图表的绘制
     **编译环境:VS2010,Windows7 C#4.0
     **2012-5-18
    **************************************************/
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    
    namespace Graphic
    {
        public  abstract class GraphicBase
        {
            #region Properties
            public String Title
            {
                get { return this._titletxt; }
                set { this._titletxt = value; }
            }
            public int Width
            {
                get { return this._width; }
                set { this._width = value; }
            }
            public int Height
            {
                get { return this._height;  }
                set { this._height = value; }
            }
            public Font TitleFont
            {
                get { return this._titlefont; }
                set { this._titlefont = value; }
            }
            public Font TxtFont
            {
                get { return this._txtfont; }
                set { this._txtfont = value; }
            }
            public Color BKColor
            {
                get { return this._bkcolor; }
                set { this._bkcolor = value; }
            }
            #endregion
    
            #region Fields
            protected int _width;
            protected int _height;
            protected String _titletxt;
            protected Font _titlefont;
            protected Font _txtfont;
            protected Color _bkcolor=Color.White;
            protected Bitmap _image;
            protected Graphics _g;
            #endregion
    
            #region Methods
            protected virtual void intiGraphic()
            {
                this._image = new Bitmap(_width, _height);
                this._g = Graphics.FromImage(this._image);
            }
            public virtual void setBkgColor()
            {
                this._g.FillRectangle(
                   new SolidBrush(BKColor), 0, 0, _width, _height);
            }
            public virtual void setFont()
            {
                this._txtfont= new Font("verdana", 9);
                this._titlefont = new 
                         Font("verdana", 10, FontStyle.Bold);
            }
            public virtual System.IO.MemoryStream getGraphic()
            {
                System.IO.MemoryStream ms = 
                      new System.IO.MemoryStream();
                _image.Save(ms, 
                      System.Drawing.Imaging.ImageFormat.Gif);
                return ms;
            }
    
            protected virtual void drawTitle() { }
            protected virtual void drawIdentification() { }
            protected virtual void drawGraphic() { }
            #endregion 
        }
    }
    
    /************************************************
    **IGraphic.cs
    **绘图基类,实现动态图表的绘制
    **编译环境:VS2010,Windows7 C#4.0
    **2012-5-18
    **************************************************/
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Grphics
    {
        public interface IGraphic
        {
            //设置字体
            void setFont();
            //设置背景颜色
            void setBkgColor();
            //实现绘图操作
            void doDraw();
            //将绘制的图形以流的形式返回
            System.IO.MemoryStream getGraphic();
        }
    }
    下面将饼图的绘制代码贴上:

    /************************************************
    **PieGraphic.cs
    **绘图基类,实现动态图表的绘制
    **编译环境:VS2010,Windows7 C#4.0
    **2012-5-18
    **************************************************/
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    using System.Collections;
    
    namespace Grphics
    {
        public class PieGraphic:GraphicBase,IGraphic 
        {
            //饼图数据类
            public class pieData
            {
                #region Fields
                private float _total=0;
                private Dictionary<String,float>_parts=
                               new Dictionary<string,float>();
                #endregion
                #region Properties
                public float Total
                {
                    get { return this._total; }
                    set { this._total = value; }
                }
                public Dictionary<String, float> Parts
                {
                    get { return this._parts; }
                    set { this._parts = value; }
                }
                #endregion 
                #region Methods
                public void addPart(String text,float value)
                {
                    this.Parts.Add(text,value);
                }
                public void removePart(String text)
                {
                    this.Parts.Remove(text);
                }
                #endregion
            }
            #region Fields
            private int _diameter;
            private pieData _data;
            private Rectangle _pierect;
            private ArrayList _colors=new ArrayList();
            #endregion
            #region Properties
            //饼图周长
            public int Diameter
            {
                get { return this._diameter; }
                set { this._diameter = value; }
            }
            public pieData PieData
            {
                get { return this._data; }
                set { this._data = value; }
            }
            #endregion 
            #region Methods
            public PieGraphic(pieData data, int diameter, String title)
            {
                this.Title = title;
                this.Diameter = diameter;
                this._data = data;
            }
            protected override void intiGraphic()
            {
                int bufferspace = 15;
                int titleheight = this.TitleFont.Height + bufferspace;
                this._height = _diameter + titleheight;
                int lendwidth = _diameter * 2;
                this._width = _diameter + lendwidth + bufferspace;
                this._pierect = 
                   new Rectangle(0, titleheight, _diameter, _diameter);
                base.intiGraphic();
            }
            public override void setBkgColor()
            {
                //设置背景色
                base.setBkgColor();
                //给扇形图区域加上一个背景色
                this._g.FillRectangle(new SolidBrush(Color.Beige), _pierect);
            }
            protected override void drawTitle()
            {
                //标题设置颜色,黑色和蓝色 
                SolidBrush blackbrush = new SolidBrush(Color.Black);
                SolidBrush bluebrush = new SolidBrush(Color.Blue);
                this.Title += "\n \n\n";
                StringFormat stringFormat = new StringFormat();
                stringFormat.Alignment = StringAlignment.Center;
                stringFormat.LineAlignment = StringAlignment.Center;
    
                int titleheight = 15 + TitleFont.Height;/*15=bufferspace*/
                this._g.DrawString(Title, TitleFont, blackbrush,
                    new Rectangle(0, 20, _width, titleheight), stringFormat);
            }
            protected override void drawIdentification()
            {
                int count = 1;
                int colum = 0;
                int size = 8;
                int tmp;
                SolidBrush blackbrush = new SolidBrush(Color.Black);
                List<float> list = new List<float>(_data.Parts.Values);
                foreach (KeyValuePair<String, float> part in _data.Parts)
                {
                    count++;
                    tmp = count % size;
                    if (count / size > 0)
                        tmp += 2;
                    _g.FillRectangle(
                        new SolidBrush(
                            (Color)_colors[count - 2]),
                             new Rectangle(
                                 _diameter + 15 + colum * 200,
                                 tmp * 30, 35, 15));
                    colum = count / size;
                    String str = 
                        part.Key + ":" + part.Value + 
                        " " + 
                        (part.Value / _data.Total * 100).ToString() +
                        "%";
                    _g.DrawString(str, 
                          TxtFont, blackbrush, 
                          new PointF(_diameter + 50 + colum * 200, tmp * 30));
                }
            }
            protected void getcolors()
            {
                Random rnd = new Random();
                for (int i = 0; i < _data.Parts.Count(); i++)
                    _colors.Add(
                        Color.FromArgb(rnd.Next(255),
                        rnd.Next(255), rnd.Next(255)));
            }
            protected override void drawGraphic()
            {
                //当前位置
                float currentAngle = 0.0f;
                int count = 0;
                foreach (KeyValuePair<String, float> part in _data.Parts)
                {
                    //画出部分扇区
                    float part_degree = 
                         part.Value / this._data.Total * 360.0f;
                    this._g.FillPie(
                         new SolidBrush(
                           (Color)_colors[count++]),
                           _pierect, currentAngle, part_degree);
                    currentAngle += part_degree;
                }
            }
            public void doDraw()
            {
                try
                {
                    this.getcolors();
                    this.setFont();
                    this.intiGraphic();
                    this.setBkgColor();
                    this.drawGraphic();
                    this.drawIdentification();
                    this.drawTitle();
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
            }
            #endregion
        }
    }
    
    下面使用法介绍:

    protected void Page_Load(object sender, EventArgs e)
        {
            Dictionary<String, float> dic = 
                   new Dictionary<string, float>();
            dic.Add("test1",1);
            dic.Add("test2",3);
            dic.Add("test3",4);
            dic.Add("test4",2);
            float total=Convert.ToSingle(10);
            String title="测试用饼图";
            PieGraphic.pieData data = 
                       new PieGraphic.pieData();
            data.Parts = dic;
            data.Total = total;
            pie = new PieGraphic(data, 250, title);
            Response.ClearContent();
            Response.ContentType = "image/gif";
            pie.doDraw();
            byte[] bytes=pie.getGraphic().ToArray();
            Response.BinaryWrite(bytes);
        }

    结果如下图:


    累了,等下次有空再把折线图补全吧~~~~



    展开全文
  • C# ZedGraph图表控件源码,我自己使用过,如果你使用过程中有疑问,欢迎添加微信zhxunCC(备注CSDN网友)一起交流。
  • C# 曲线图表

    2015-06-29 11:54:57
    C# 曲线图表
  • C# OWC生成图表

    2020-10-29 22:06:53
    最近做一个项目,按客户需求,需要生成一些报表,OWC是比较合适的组件.
  • 详细讲解了在C#中如何在WINFORM下制作EXCEL中的各类图表,如饼图、柱状图等。根据此文档,可以设计出各种漂亮的图表。立即成为图表开发高手。
  • C#实现动态的曲线图

    热门讨论 2013-11-29 15:47:02
    使用.net 4.0 Chart控件实现动态的曲线图,即随时间变化而滚动的曲线图,同时绘制了两条曲线,以及水平线(用于警戒值、水平值、阀值等)。一开始要做这人需求的时间发现两眼摸黑,网上查了很多资料,要么是其他插件...
  • C#统计图表

    2018-03-09 09:11:45
    http://echarts.baidu.com/tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts

    http://echarts.baidu.com/tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts




    展开全文
  • 产品走势图,C#源码实现,C#利用图表分析产品销售走势,请先连接Database数据库中的文件,配置完成后再测试,否则看不到走势图,如截图所示的就是没有数据库状态下的运行界面。 运行环境:Visual Studio2010
  • C# 生成图表源码,生成常用的圆饼图/柱形图的控件及
  • C# 开源图表控件ZedGraph,ZedGraph.dll,图表控件,显示功能强大,代码简单,比VS自带的chart方便,自带的chart编写代码麻烦,而且在大量数据显示的时候刷新显示很慢,
  • C#图表技术

    2021-06-09 23:32:46
    本课程主要使用C#图形技术,绘制各种统计图表,如面形图、柱状图、折线图、饼图等。
  • C#数据图表之饼图,内含两种代码,一是自定义饼图控件,另一是自绘制饼图代码。一种是控件类,一种是纯代码绘制,不同使用环境采用不同代码!
  • C#使用图表显示汇总数据,对学习C#来说,是一个实用的实例源码,是C#中DrawLine、DrawString等方法的典型实例,对于不熟悉这些生成图表方法的朋友,这是很难得的初级学习范例。示例用到的数据库文件在Database文件夹...
  • C#中使用水晶报表显示图表

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,343
精华内容 8,137
关键字:

c#动态图表

c# 订阅