zoukankan      html  css  js  c++  java
  • EXT.NET 使用总结(3)--动态图表

    动态生成雷达图--Radar

    效果图:

    aspx页面代码:

    1 <ext:Panel ID="ResultPanel" Border="true" runat="server">
    2     <Items>
    3     </Items>
    4 </ext:Panel>

    因为是动态生成图,所以只需要一个容器装载(Panel);

    aspx.cs代码

     1         [DirectMethod(Timeout = 2000000)]//限制执行超时时间
     2         protected void ReloadData(object sender, DirectEventArgs e)
     3         {
     4             Dictionary<string, Dictionary<string, double>> data = GenerateChartBySingleCorp();
     5             ResultPanel.Controls.Clear();
     6             Ext.Net.Panel Panel = GetGroupChart(data);
     7             ResultPanel.Add(Panel);//把生成带有Radar图的Panel加到容器里
     8             ResultPanel.ReRender();//重新装载容器(容器位置不变)
     9             // ResultPanel.Render();重新装载容器(容器位置根据添加子元素的顺序加载)
    10         }
     1        public Ext.Net.Panel GetGroupChart(Dictionary<string, Dictionary<string, double>> data )
     2         {
     3             List<Datas> DataList = GetDataSource(data);//数据源
     4 
     5             Ext.Net.Model ExtModel = new Ext.Net.Model();//定义一个mode
     6             ExtModel.Fields.Add(new ModelField("Name", ModelFieldType.String));
     7             Dictionary<string, double> first=data.First().Value;
     8             Dictionary<string, string> dataMODE = new Dictionary<string, string>();
     9             int i = 0;
    10             foreach (var item in first)
    11             {
    12                 ExtModel.Fields.Add(new ModelField("Data"+i, ModelFieldType.Float));
    13                 dataMODE.Add("Data"+i,item.Key);
    14                 i++;
    15             }
    16 
    17             RadialAxis ra = new RadialAxis();//定义图表类型,这里定义为 雷达图,也可以定义为线图,柱图,饼图等。
    18             ra.Maximum = 5;//最大值
    19             ra.Steps = 5;//分成几个圈
    20             //Maximum="5" Steps="5"
    21 
    22             Chart Chart = new Chart();//定义一个chart容器
    23             Chart.Height = 500;
    24             Chart.Width = 950;
    25             Chart.StyleSpec = "background:#fff;";
    26             Chart.StandardTheme = StandardChartTheme.Category2;
    27             Chart.InsetPadding = 20;
    28             Chart.Animate = true;
    29             Chart.LegendConfig = new ChartLegend(new ChartLegend.Config() { Position = LegendPosition.Right });
    30             foreach (var item in dataMODE)//循环加载数据集
    31             {
    32                 RadarSeries radarseries = new RadarSeries();
    33                 List<string> XFieldFields = new List<string>();
    34                 XFieldFields.Add("Name");
    35                 List<string> YFieldFields = new List<string>();
    36                 YFieldFields.Add(item.Key);
    37                 radarseries.XField = XFieldFields.ToArray();
    38                 radarseries.YField = YFieldFields.ToArray();
    39                 radarseries.ShowInLegend = true;
    40                 radarseries.ShowMarkers = true;
    41                 radarseries.Title = item.Value;
    42 
    43                 SpriteAttributes SpriteAttributes = new Ext.Net.SpriteAttributes();
    44                 SpriteAttributes.Radius = 5;
    45                 SpriteAttributes.Size = 5;
    46                 radarseries.MarkerConfig = SpriteAttributes;
    47 
    48                 SpriteAttributes SpriteAttributes1 = new Ext.Net.SpriteAttributes();
    49                 SpriteAttributes1.StrokeWidth = 2;
    50                 SpriteAttributes1.Fill = "none";
    51                 radarseries.Style = SpriteAttributes1;
    52 
    53                 ChartTip ChartTip = new Ext.Net.ChartTip();
    54                 ChartTip.TrackMouse = true;
    55                 ChartTip.Width = 250;
    56                 ChartTip.Height = 28;
    57                 ChartTip.Renderer.Handler = "this.setTitle(storeItem.get('Name') + ': ' + storeItem.get('" + item.Key + "'));";
    58                 radarseries.Tips = ChartTip;
    59                 Chart.Series.Add(radarseries);
    60             }
    61             Chart.Axes.Add(ra);
    62             Store Store = new Ext.Net.Store();
    63             Store.Model.Add(ExtModel);
    64             Store.Data = DataList;
    65             Store.AutoDataBind = true;
    66             Chart.Store.Add(Store);
    67 
    68             Ext.Net.Panel Panelp = new Ext.Net.Panel();
    69             Panelp.Border = false;
    70             Panelp.Height = 560;
    71             Panelp.Width = 960;
    72             Panelp.Add(Chart);
    73             return Panelp;
    74         }

    图表总结

    和雷达图一样,其他图表也是类似的定义,只是属性不同而已。具体可参考ext.net 提供的demo http://examples.ext.net/#/Chart/Area/Basic/

    小白在项目中用到的其他优秀的图表插件

    fashion chart

    http://www.fusioncharts.com/

    Highcharts

    http://www.highcharts.com/

    这两款都是比较优秀的图表插件。当然就雷达图而言,小白觉得还是ext的比较漂亮。

    更多图表请看小白的博文 http://www.cnblogs.com/WangJinYang/archive/2012/06/19/2554594.html

    欢迎博友的意见和建议。

  • 相关阅读:
    PAT 甲级 1027 Colors in Mars
    PAT 甲级 1026 Table Tennis(模拟)
    PAT 甲级 1025 PAT Ranking
    PAT 甲级 1024 Palindromic Number
    PAT 甲级 1023 Have Fun with Numbers
    PAT 甲级 1021 Deepest Root (并查集,树的遍历)
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯 算法提高 抽卡游戏
    Java实现 蓝桥杯 算法提高 抽卡游戏
  • 原文地址:https://www.cnblogs.com/WangJinYang/p/3500201.html
Copyright © 2011-2022 走看看