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;   //設置是否交錯顯示,好比數據多的時間分紅兩行來顯示 

相關文章
相關標籤/搜索