天天看點

愛上MVC~圖表的使用Chart

回到目錄

圖表在一個系統中是必須的,MVC架構把它當然是一個擴充內建了進來,通過簡單的幾句話就可以生成一個風格多樣的圖表,這給報表的開發帶來了很大的友善,大叔的項目中也做了一個測試,把主要的代碼貼出來,和大家分享一下。

首先一個Action,傳回你需要的圖表

     public void Chart(string type = "Column")
        {
            new Chart(width: 600, height: 400, theme: ChartTheme.Green)
               .AddTitle("人員流動情況")
               .AddSeries(name: "Employee"
               , chartType: type//Column,Pie
               , xValue: new[] { "一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份" }
               , yValues: new[] { "2", "6", "4", "5", "3", "4", "9", "2", "5" })
               .Write();
        }      

代碼中的cartType表示圖表的類型,一般也就是Column(柱狀),Pie(餅狀),Range(範圍)等等。

幾種常用的圖表截圖

柱形

餅形

範圍

如果你希望将資料庫的資料生成圖表,需要将名稱字段和統計字段放到一個匿名的IEnumerable<T>集合裡,例如

     /// <summary>
        /// 通過資料生成圖表
        /// </summary>
        /// <param name="type"></param>
        public void DataChart(string type)
        {
            var total = productList.Select(i => new
            {
                Name = i.Name,
                Price = i.UnitPrice
            }).ToList();//必須要ToList()操作

            new Chart(width: 600, height: 400, theme: ChartTheme.Green)
               .AddTitle("人員流動情況")
               .AddSeries(name: "Employee"
               , chartType: string.IsNullOrWhiteSpace(type) ? "Column" : type)//Column,Pie,Range,Stock,Point,Area
               .DataBindTable(total, "Name")
               .Write();
        }      

結果如下

當然如果你要設計多元度報表,你需要讓你的IEnumerable<T>對象存在多個元素即可,也就是說,它裡面的元素除了一個"X-Field",其它的都是次元字段,是以要根據情況去使用。

而如果各位還需要其它的圖表類型,還可以參數下拉的參數清單

說明
Area 面積圖類型。
Bar 條形圖類型。
BoxPlot 盒須圖類型。
Bubble 氣泡圖類型。
Candlestick K 線圖類型。
Column 柱形圖類型。
Doughnut 圓環圖類型。
ErrorBar 誤差條形圖類型。
FastLine 快速掃描線圖類型。
FastPoint 快速點圖類型。
Funnel 漏鬥圖類型。
Kagi 卡吉圖類型。
Line 折線圖類型。
Pie 餅圖類型。
Point 點圖類型。
PointAndFigure 點數圖類型。
Polar 極坐标圖類型。
Pyramid 棱錐圖類型。
Radar 雷達圖類型。
Range 範圍圖類型。
RangeBar 範圍條形圖類型。
RangeColumn 範圍柱形圖類型。
Renko 磚形圖類型。
Spline 樣條圖類型。
SplineArea 樣條面積圖類型。
SplineRange 樣條範圍圖類型。
StackedArea 堆積面積圖類型。
StackedArea100 百分比堆積面積圖類型。
StackedBar 堆積條形圖類型。
StackedBar100 百分比堆積條形圖類型。
StackedColumn 堆積柱形圖類型。
StackedColumn100 百分比堆積柱形圖類型。
StepLine 階梯線圖類型。
Stock 股價圖類型。
ThreeLineBreak 新三值圖類型。

感謝各位的閱讀!

作者:倉儲大叔,張占嶺,

榮譽:微軟MVP

QQ:853066980

支付寶掃一掃,為大叔打賞!

愛上MVC~圖表的使用Chart