当前位置:   article > 正文

利用AmChart制作图表信息(效果动态好看,很花哨)

amchart html container 'chartdiv' not found

最近都是在做图表,老大觉得不好看,换了几个,熟悉了几个制作图表的插件,分享一下使用,这个是使用Amchart制作的,不多说,直接上源码

  1. <div id="chartdiv" style="width: 820px; height: 360px;">
  2. </div>
  3. <input type="radio" class="radioItem" name="optiontype" checked="checked" value="0"
  4. style="height: 20px; width: 20px; vertical-align: middle;" /><lable style="vertical-align: middle;">按月查询</lable>    
  5. <input type="radio" class="radioItem" name="optiontype" value="1" style="height: 20px;
  6. width: 20px; vertical-align: middle;" /><lable style="vertical-align: middle;">按日查询</lable>
  7.     
  8. <input type="text" id="startTime" class="Wdate" style="width: 110px;" οnfοcus="selectChange()" />
  9. <input type="text" id="endTime" class="Wdate" style="width: 110px;" οnfοcus="selectChange()" />
  10.     
  11. <input type="button" id="serach" title="点击查询" value="点击查询" οnclick="buildChart()" />

js引用(引用地址自行修改)

  1. <script src="Scripts/amcharts/amcharts.js" type="text/javascript"></script>
  2. <script src="Scripts/amcharts/serial.js" type="text/javascript"></script>

后台数据处理代码

  1. Dictionary<string, object> result = new Dictionary<string, object>();
  2. List<Data> data = new List<Data>();
  3. result.Add("access", getData_exec(all_amount));
  4. result.Add("pay", GetList(GetTable(sql_pay), OptionType, day));
  5. result.Add("received", GetList(GetTable(sql_received), OptionType, day));
  6. result.Add("payable", GetList(GetTable(sql_payable), OptionType, day));
  7. result.Add("receivable", GetList(GetTable(sql_receivable), OptionType, day));
  8. string access = result["access"].ToString();
  9. List<statistics> pay = result["pay"] as List<statistics>;
  10. List<statistics> received = result["received"] as List<statistics>;
  11. List<statistics> payable = result["payable"] as List<statistics>;
  12. List<statistics> receivable = result["receivable"] as List<statistics>;
  13. ArrayList arrList = new ArrayList();
  14. arrList.Add(pay);
  15. arrList.Add(received);
  16. arrList.Add(payable);
  17. arrList.Add(receivable);
  18. StringBuilder sb = new StringBuilder();
  19. foreach (statistics item in pay)
  20. {
  21. Data d1 = new Data();
  22. d1.year = item.time;
  23. d1.amount = access;
  24. d1.pay = item.amount;
  25. d1.received = received.Where(c => c.time == item.time).ToList().FirstOrDefault().amount;
  26. d1.payable = payable.Where(c => c.time == item.time).ToList().FirstOrDefault().amount;
  27. d1.receivable = receivable.Where(c => c.time == item.time).ToList().FirstOrDefault().amount;
  28. data.Add(d1);
  29. }
  30. Decimal max = Convert.ToDecimal(access);
  31. Decimal a = pay.Max<statistics>(c => Convert.ToDecimal(c.amount));
  32. max = a > max ? a : max;
  33. Decimal b = received.Max<statistics>(c => Convert.ToDecimal(c.amount));
  34. max = b > max ? b : max;
  35. Decimal e = payable.Max<statistics>(c => Convert.ToDecimal(c.amount));
  36. max = e > max ? e : max;
  37. Decimal d = receivable.Max<statistics>(c => Convert.ToDecimal(c.amount));
  38. max = d > max ? d : max;
  39. if (max <= 200)
  40. {
  41. max = 200;
  42. }
  43. HttpCookie cookie = new HttpCookie("max", max.ToString());
  44. Context.Response.Cookies.Add(cookie);
  45. JavaScriptSerializer jss = new JavaScriptSerializer();
  46. string str= jss.Serialize(data);
  47. HttpContext.Current.Response.Clear();
  48. HttpContext.Current.Response.Write(str);
  49. HttpContext.Current.Response.End();

前端数据处理

  1. var chart;
  2. //这一个方法是用来动态刷新数据的,不用的话会导致数据不会动态变化
  3. function init(chartData){
  4. var max=getCookie("max");
  5. chart.dataProvider = chartData;
  6. var valueAxis = new AmCharts.ValueAxis();
  7. valueAxis.minimum = 0;
  8. valueAxis.maximum = max;
  9. chart.validateNow();
  10. chart.validateData();
  11. }
  12. function lineContrast(data)
  13. {
  14. var max=parseInt(getCookie("max"));
  15. max=max+50;
  16. AmCharts.ready(function () {
  17. // SERIAL CHART
  18. chart = new AmCharts.AmSerialChart();
  19. chart.dataProvider = data;
  20. chart.categoryField = "year";
  21. chart.startDuration = 0.5;
  22. chart.balloon.color = "#000000";
  23. // AXES
  24. // category
  25. var categoryAxis = chart.categoryAxis;
  26. categoryAxis.fillAlpha = 1;
  27. categoryAxis.fillColor = "#FAFAFA";
  28. categoryAxis.gridAlpha = 0;
  29. categoryAxis.axisAlpha = 0;
  30. categoryAxis.dashLength = 0;
  31. categoryAxis.labelRotation = 45;
  32. categoryAxis.gridPosition = "start";
  33. categoryAxis.position = "bottom";
  34. // value
  35. var valueAxis = new AmCharts.ValueAxis();
  36. valueAxis.title = "金额";
  37. valueAxis.color ="#8420CA";
  38. valueAxis.dashLength = 5;
  39. valueAxis.axisAlpha = 0;
  40. valueAxis.minimum = 0.00;
  41. valueAxis.maximum = max;
  42. //valueAxis.integersOnly = true;
  43. valueAxis.gridCount = 0;
  44. valueAxis.dashLength =0;
  45. //valueAxis.inside = true;
  46. valueAxis.reversed = false; // this line makes the value axis reversed
  47. chart.addValueAxis(valueAxis);
  48. // GRAPHS
  49. // 总资产
  50. var graph = new AmCharts.AmGraph();
  51. graph.title = "资产总量";
  52. graph.valueField = "amount";
  53. //graph.hidden = true; // this line makes the graph initially hidden
  54. graph.balloonText = "[[category]] 资产总量为:[[value]]";
  55. graph.lineAlpha = 1;
  56. graph.bullet = "round";
  57. graph.lineColor="red";
  58. chart.addGraph(graph);
  59. // 已付款
  60. var graph = new AmCharts.AmGraph();
  61. graph.title = "已付金额";
  62. graph.valueField = "pay";
  63. graph.balloonText = " [[category]] 已付金额: [[value]]";
  64. graph.bullet = "round";
  65. graph.lineColor="blue";
  66. chart.addGraph(graph);
  67. // 已收款
  68. var graph = new AmCharts.AmGraph();
  69. graph.title = "已收金额";
  70. graph.valueField = "received";
  71. graph.balloonText = "[[category]] 已收金额: [[value]]";
  72. graph.bullet = "round";
  73. graph.lineColor="green";
  74. chart.addGraph(graph);
  75. // 应付款
  76. var graph = new AmCharts.AmGraph();
  77. graph.title = "应付款";
  78. graph.valueField = "payable";
  79. graph.balloonText = "[[category]] 应付款:[[value]]";
  80. graph.bullet = "round";
  81. graph.bulletBorderThickness = 2;
  82. graph.lineThickness = 2;
  83. graph.bulletBorderThickness = 2;
  84. graph.bulletBorderAlpha = 1;
  85. graph.lineColor="gray";
  86. graph.dashLength=9;
  87. chart.addGraph(graph);
  88. // 应收款
  89. var graph = new AmCharts.AmGraph();
  90. graph.title = "应收款";
  91. graph.valueField = "receivable";
  92. graph.balloonText = "[[category]] 应收款: [[value]]";
  93. graph.bullet = "round";
  94. graph.lineColor="black";
  95. graph.dashLength=3;
  96. chart.addGraph(graph);
  97. // CURSOR
  98. var chartCursor = new AmCharts.ChartCursor();
  99. chartCursor.cursorPosition = "mouse";
  100. chartCursor.zoomable = false;
  101. chartCursor.cursorAlpha = 0;
  102. chart.addChartCursor(chartCursor);
  103. // LEGEND
  104. var legend = new AmCharts.AmLegend();
  105. legend.bulletType = "round";
  106. legend.equalWidths = false;
  107. legend.useGraphSettings = true;
  108. legend.gridPosition = "start";
  109. legend.position = "top";
  110. chart.addLegend(legend);
  111. // WRITE
  112. chart.write("chartdiv");
  113. });
  114. }
  115. function buildChart()
  116. {
  117. if($("#startTime").val()>$("#endTime").val()||($("#startTime").val()>getNowFormatDate("month")&&$("#startTime").val()>getNowFormatDate()))
  118. {
  119. layer.msg("请输入正确时间");
  120. return;
  121. }
  122. var BeginTime =$("#startTime").val();
  123. var EndTime = $("#endTime").val();
  124. var OptionType=$('input[name="optiontype"]:checked').val();
  125. $.ajax({
  126. url: '/WebUI_Index.aspx?method=GetData',
  127. type: 'POST',
  128. data: { BeginTime: BeginTime, EndTime: EndTime,OptionType:OptionType},
  129. dataType: "json",
  130. cache: false,
  131. async: false,
  132. success: function (obj) {
  133. lineContrast(obj);
  134. window.setInterval(init(obj), 5000);
  135. },
  136. error: function (jqXHR, textStatus, errorThrown) {
  137. layer.msg(jqXHR.responseText);
  138. }
  139. });
  140. }

 效果图例:

转载于:https://www.cnblogs.com/myparadiseworld/p/5896928.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/114700
推荐阅读
相关标签
  

闽ICP备14008679号