winform程序中chart图的使用经验(chart图的更新)

  • 如何让chart图进行刷新而且根据数值从新绘制

首先初始化一个chartc#

1                 chart1.Titles.Add("柱状图数据分析");
2                 chart1.ChartAreas[0].AxisX.Title = "时间(月)";
3                 chart1.ChartAreas[0].AxisY.Title = "单位(元)";
4                 //chart1
5                 Series series = chart1.Series["Series1"];
6                 series.LegendText = "销售分析";
7                 chart1.DataSource = list;
8                 series.XValueMember = "time";
9                 series.YValueMembers = "value";

进行从新绘制编辑器

 1             chart1.Series["Series1"].Points.Clear();//清除以前的图
 2             Series series = chart1.Series["Series1"];
 3             // 图示上的文字
 4             series.LegendText = "销售分析";
 5             //InitializeComponent();
 6             //获取当前年份查询
 7             List<LirunModel> list = new LirunDao().getList(year,type);
 8             if (list != null)
 9             {
10                 chart1.DataSource = list;
11                 series.XValueMember = "time";
12                 series.YValueMembers = "value";
13             }
  • time和value是怎么回事?

这是给chart赋值的过程;spa

首先有一个模型类code

    class LirunModel
    {
        private double _value;

        public double Value
        {
            get { return _value; }
            set { _value = value; }
        }
        private string _time;

        public string Time
        {
            get { return _time; }
            set { _time = value; }
        }

    }

而后用一个List保存多个模型类的对象,最后经过这个list给chart的横纵坐标赋值。对象

 1         //年份和类型 1是销售额   2是利润
 2         public List<LirunModel> getList(int year,int type)
 3         {
 4             List<LirunModel> list=new List<LirunModel>();
 5             
 6             LirunModel m=null;
 7             for (int i = 1; i < 13; i++)
 8             {
 9                 m = new LirunModel();
10                 m.Time = i + "";
11                 if (type == 1)
12                 {
13                     m.Value = getInByMonth(i, year);
14                 }
15                 else if (type == 2)
16                 {
17                     m.Value = getInByMonth(i, year) - getOutByMonth(i, year);
18                 }
19                 list.Add(m);
20             }
21             return list;
22         }

 

  • C#获取年份

DateTime.Now.Year.ToString();         获取年份  // 2008blog

DateTime.Now.ToString();            // 2008-9-4 20:02:10get

DateTime.Now.ToString("yyyy-MM-dd");        // 2008-09-04数据分析

DateTime.Now.Month.ToString();      获取月份   // 9string

DateTime.Now.DayOfWeek.ToString(); 获取星期   // Thursdayit

DateTime.Now.DayOfYear.ToString(); 获取第几天   // 248

 

  • c#如何让chart中的每一个横坐标都显示

首先,经过chart空间属性,找到 “ChartAreas集合” ,而且点开

因而来到了ChartAreas集合编辑器,在右边ChartAreas1属性中找到 “Axes集合",并点开,如图
由于咱们要设置的是x轴,因此在 ”Axis集合编辑器“ 左边中选 ”x axis“,
在右边属性中选择 ”IntervalAutoMode“ 在下来项中选中 ”VariableCount“,设定x轴的间隔是可变的,
设定x轴间隔可变
这时,若是x轴标签过多,可能还不会使得x轴标签所有显示出来,这就须要把x轴标签分为上下两层显示
仍是在 ”Axis集合编辑器“ 中找到 ”IsStaggered属性“ 设其值为 ”True“,
在 ”Axis集合编辑器“ 中找到 ”IsStaggered属性“ 设其值为 ”True“,
接着在运行,成功显示x轴所有标签
固然,还有另外一种方法,使x轴标签旋转90度角显示,
在设置x轴可变后,在 ”Axis集合编辑器“ 选中 ”Angle“ 选项,设置值为90,
点击 ”肯定“ 退出设置

或者能够添加这句代码

Chart1.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true;   //设置是否交错显示,好比数据多的时间分红两行来显示 

相关文章
相关标签/搜索