美文网首页
AmchartsJS版设置属性/方法详细

AmchartsJS版设置属性/方法详细

作者: 小边_leo | 来源:发表于2020-08-19 12:57 被阅读0次

    9、 动态图表示例

    1、需要在html页面增加一个div,同时设置div的id和样式,amcharts将图表显示在指定的id的div中

    <div id="chartdiv" style="width: 50%; height: 300px"></div>
    

    2、引用amcharts js 库和css样式

    <scriptsrc="amcharts/amcharts.js"type="text/javascript"></script>       
    
    <linkrel="stylesheet"href="style.css"type="text/css">
    

    3、设定一个定时器,循环调用函数

    window.setInterval(show,2000);//每隔2秒调用一次show()方法,show方法完成绘图功能

    function show(){
    
                       var chart = new AmCharts.AmSerialChart();
    
                       var valueAxis1 = new AmCharts.ValueAxis();
    
                       var graph1 = new AmCharts.AmGraph();
    
                       var categoryAxis = chart.categoryAxis;
    
                       var guide = new AmCharts.Guide();
    
                       var legend = new AmCharts.AmLegend();
    
                        var chartCursor = new AmCharts.ChartCursor();
    
                      //设定最大显示数值个数
    
                        generateChartData();
    
                         chart.pathToImages = "amcharts/images/";
    
                           chart.zoomOutButton = {
    
                               backgroundColor: '#000000',
    
                               backgroundAlpha: 0.15
    
                           };
    
                           chart.dataProvider = chartData;
    
                           chart.categoryField = "date";
    
                           categoryAxis.parseDates = false; // as our data is date-based, we set parseDates to true
    
                           categoryAxis.dashLength = 1;
    
                            categoryAxis.gridAlpha = 0.15;
    
                            categoryAxis.axisColor = "#DADADA";
    
                           // categoryAxis.position = "top";
    
                            categoryAxis.gridPosition = "start";
    
                            categoryAxis.startOnAxis = true;
    
                            categoryAxis.gridColor = "#FFFFFF";               
    
                         // CURSOR
    
                         
    
                            chartCursor.zoomable = false; // as the chart displayes not too many values, we disabled zooming
    
                            chartCursor.cursorAlpha = 0;
    
                            chartCursor.cursorPosition = "mouse";
    
                            chartCursor.pan = true; // set it to fals if you want the cursor to work in "select" mode
    
                            chart.addChartCursor(chartCursor);
    
     
    
                            valueAxis1.axisColor = "#FF6600";
    
                            valueAxis1.axisThickness = 1;
    
                            valueAxis1.gridAlpha = 0;
    
                            valueAxis1.tickLength =0;
    
                            valueAxis1.minimum = -100;
    
                            valueAxis1.maximum = 100;
    
                            valueAxis1.title="哈哈";
    
                            valueAxis1.logarithmic = false; // this line makes axis logarithmic
    
                            valueAxis1.integersOnly = true;
    
                            valueAxis1.gridCount = 10;
    
                            valueAxis1.unit = "%";
    
                            valueAxis1.labelsEnabled = true;
    
                            valueAxis1.inside = true;
    
                            valueAxis1.position = "left";
    
                           
    
                            chart.addValueAxis(valueAxis1);
    
                      
    
                         // LEGEND
    
                            legend.align = "center";
    
                            legend.marginLeft = 0;
    
                            legend.title="测试";
    
                            legend.horizontalGap = 10;
    
                            legend.equalWidths = false;
    
                            legend.valueWidth = 120;
    
                            chart.addLegend(legend);
    
                           
    
                            guide.fillAlpha = 0.1;
    
                            guide.lineAlpha = 0;
    
                            guide.value = 50;
    
                            guide.toValue = 0;
    
                            guide.lineColor = "#CC0000";
    
                            guide.dashLength = 4;
    
                            guide.label = "平均值";
    
                            guide.inside = true;
    
                            guide.lineAlpha = 1;
    
                    
    
                             var guide1 = new AmCharts.Guide();
    
                            guide1.lineColor = "#CC0000";
    
                            guide1.lineAlpha = 1;
    
                            guide1.dashLength = 2;
    
                            guide1.inside = true;
    
                            guide1.labelRotation = 90;
    
                            categoryAxis.addGuide(guide1);
    
                            valueAxis1.addGuide(guide);
    
                           
    
                            graph1.valueAxis = valueAxis1; // we have to indicate which value axis should be used
    
                            graph1.title = "红色";
    
                            graph1.valueField = "visits";
    
                            graph1.bullet = "round";
    
                            graph1.dashLength = 0;
    
                            graph1.hideBulletsCount = 10;
    
                            graph1.balloonText = "[[date]] ([[visits]])";
    
                            graph1.lineColor = "#d1655d";
    
                            graph1.connect = false;
    
                            graph1.negativeLineColor = "#efcc26";
    
                            graph1.bulletBorderColor = "#FFFFFF";
    
                         graph1.bulletBorderThickness = 2;
    
                           graph1.type = "smoothedLine"; // this line makes the graph smoothed line.
    
                            graph1.fillAlphas = 0.3; // setting fillAlphas to > 0 value makes it area graph
    
                            chart.addGraph(graph1);
    
                                                  
    
                            chart.addTitle("测试动态报表图", 5);
    
                            chart.plotAreaBorderColor = "#000000";
    
                            chart.plotAreaBorderAlpha = 5;
    
                            chart.autoMargins = true;
    
                            chart.fontSize = 14;
    
                            chart.write('chartdiv');
    
     
    
                            chart=null;
    
                          valueAxis1 = null;
    
                          graph1 = null;
    
                          categoryAxis = null;
    
                          guide = null;
    
                          legend = null;
    
               }
    
     function generateChartData() {
    
                     $.ajax({
    
                      type : "get",
    
                      url : "${pageContext.request.contextPath}/getData",
    
                      dataType : "text",
    
                      data : {
    
                      },
    
                      success : function(result) {
    
                          parseData(result,20);
    
                      },
    
                      error : function(XMLHttpRequest, textStatus, errorThrown) {
    
                          alert("请求异常,请检查服务器是否正常运行!" + XMLHttpRequest.status + "  "
    
                                 + XMLHttpRequest.readyState + "  " + textStatus);
    
                      }
    
                   });
    
                }
    
     function parseData(data,num){
    
                  var tempDate = [];
    
                  tempDate = data.split(" ");
    
                     chartData.push({
    
                          date:tempDate[0],
    
                           visits:tempDate[1]
    
                      });
    
                  var newChartData=[];
    
                  var len=chartData.length;
    
                   if(len>num){
    
                       for(var m=0;m<num;m++){
    
                           newChartData[m]=chartData[len-num+m];
    
                       }
    
                       chartData = newChartData;
    
                       newChartData=null;
    
                  }
    
                  len=null;
    
                  visits=null;
    
               }
    

    4、写一个servlet程序,给amcharts提供动态数据

    publicclass DataProviderServlet extends HttpServlet {
    
        privatestaticfinallongserialVersionUID = 1L;
    
         publicstatic Integer i=0;
    
        public DataProviderServlet() {
    
            super();
    
        }
    
        protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
           StringBuilder sb = new StringBuilder();
    
               sb.append(i++).append(" ").append(new Random().nextInt(100)*(i%2==0?(-1):(1)));
    
           System.out.println(sb.toString());
    
           response.getWriter().write(sb.toString());
    
          
    
        }
    
        protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
           doGet(request, response);
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:AmchartsJS版设置属性/方法详细

          本文链接:https://www.haomeiwen.com/subject/ihvrjktx.html