Heim  >  Artikel  >  Web-Frontend  >  Einführung in die grundlegende Verwendung des Echart-Plug-Ins usw

Einführung in die grundlegende Verwendung des Echart-Plug-Ins usw

巴扎黑
巴扎黑Original
2017-08-12 16:15:052935Durchsuche

Dieser Artikel stellt hauptsächlich die Einführung von Echart vor. Der Herausgeber findet ihn recht gut. Ich werde ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor, um einen Blick darauf zu werfen

1. Laden Sie das Plug-in herunter

Das Folgende ist der Download-Link für ECharts ECharts setzt auch auf internes Plugin namens ZRender. Natürlich ist ZRender für die meisten Diagramme nicht erforderlich, aber ZRender ist für Kartensteuerelemente und andere komplexe Rendering-Steuerelemente erforderlich. Um unnötige Probleme zu vermeiden, wird empfohlen, beim Herunterladen von ECharts auch ZRender herunterzuladen.

ECharts-Download-Adresse: http://echarts.baidu.com/

ZRender-Download-Adresse: http://ecomfe.github.io/zrender/index. html

Entpacken Sie nach dem Herunterladen die jeweiligen Dateiverzeichnisstrukturen wie folgt:

ECarts:

 

ZRender:


2. Plug-in-Referenz

Erstellen Sie zunächst eine neue Webanwendung und fügen Sie dann die gerade heruntergeladene Datei hinzu. Die spezifische Verzeichnisstruktur ist wie folgt:

Hier ist Folgendes zu erklären:

  • Alle Dateien im Zusammenhang mit ECharts befinden sich im Echarts-Ordner

  • Der Inhalt der Echarts Der Ordner ist in zwei Teile unterteilt.

1) Teil ist die js-Datei, die mit echarts beginnt. Diese Dateien stammen alle aus den Dateien im js-Ordner im ECharts-Dateiverzeichnis in 1., das heißt ist in 1. Die Dateien unter js sind im roten Feld im Bild markiert. Wie folgt:

2) Der andere Teil ist ein Ordner mit dem Namen zrender. Hier muss besonders darauf geachtet werden, dass der Ordner zrender heißen muss, da die js in echarts die Referenzen sind Zum Zrender in der Datei haben alle Zrender als Stammverzeichnis. Der Inhalt des Zrender-Ordners ist der Inhalt des SRC-Ordners im Zrender-Dateiverzeichnis in 1., wie folgt:

3. Spezifische Verwendung auf der Seite

Nach der Konfiguration gemäß den oben genannten Schritten können wir hier hauptsächlich darauf verweisen Demonstrieren Sie die Verwendung des Kartensteuerelements, da sich die Referenz der Karte von der Referenz anderer Basisgrafiken unterscheidet. Auch die Darstellung weiterer Grafiken wird kurz demonstriert.

MapChart

Fügen Sie zunächst eine ASPX-Seite oder HTML-Seite im selben Verzeichnis wie der Echarts-Ordner in 2 hinzu (d. h. im Modulordner). Beachten Sie, dass Sie bei der Verwendung von Echarts in einer ASPX-Seite das zu rendernde P außerhalb des Formular-Tags platzieren müssen, da sonst die Grafiken nicht angezeigt werden.

Fügen Sie im Head-Tag wie folgt einen Verweis auf Echarts hinzu:


<head runat="server"> 
  <title></title> 
  <script src="echarts/esl.js" type="text/javascript"></script> 
</head>

im body-Tag, fügen Sie ein p außerhalb des Formular-Tags hinzu, das als Container für die Diagrammdarstellung verwendet wird. Wie folgt:


<body> 
 
<p id="main"style="height:500px;border:1px solid #ccc;padding:10px;"></p> 
 
…………… 
 
…………… 
 
</body>

Fügen Sie unter dem oben hinzugefügten p-Tag das folgende js-Code-Snippet wie folgt hinzu:


 <script type="text/javascript"> 
 
    //为模块加载器配置echarts的路径,这里主要是配置map图表的路径,其他的图表跟map的配置还不太一样,下边也会做另一种类型的图表事例。 
这里引用的主要是echarts文件夹下的echarts-map文件,而其他类型的图表引用的都是echarts文件夹下的echarts文件。 
 
    require.config({ 
 
      paths: { 
 
        echarts:&#39;./echarts/echarts&#39;, 
 
        &#39;echarts/chart/map&#39;:&#39;./echarts/echarts-map&#39; 
 
      } 
 
    }); 
 
   //动态加载echarts,在回掉函数中使用,要注意保持按需加载结构定义图表路径 
 
    require( 
 
    [ 
 
      &#39;echarts&#39;, 
 
      &#39;echarts/chart/map&#39; 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById(&#39;main&#39;)); 
 
      //option主要是图标的一些设置,这不是这篇文章的重点,关于具体的设置可以参考官方的文档说明文档 
 
option= { 
 
        title: { 
 
          text:&#39;iphone销量&#39;, 
 
          subtext:&#39;纯属虚构&#39;, 
 
          x:&#39;center&#39; 
 
        }, 
 
        tooltip: { 
 
          trigger:&#39;item&#39; 
 
        }, 
 
        legend: { 
 
          orient:&#39;vertical&#39;, 
 
          x:&#39;left&#39;, 
 
          data: [&#39;iphone3&#39;,&#39;iphone4&#39;,&#39;iphone5&#39;] 
 
        }, 
 
        dataRange: { 
 
          min:0, 
 
          max:2500, 
 
          text: [&#39;高&#39;,&#39;低&#39;],      
 
          calculable:true, 
 
          textStyle: { 
 
            color:&#39;orange&#39; 
 
          } 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          orient:&#39;vertical&#39;, 
 
          x:&#39;right&#39;, 
 
          y:&#39;center&#39;, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        series: [ 
 
    { 
 
      name:&#39;iphone3&#39;, 
 
      type:&#39;map&#39;, 
 
      mapType:&#39;china&#39;, 
 
      selectedMode: &#39;single&#39;, 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:&#39;#ffd700&#39; },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:&#39;北京&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;天津&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;上海&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;重庆&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;河北&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;河南&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;云南&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;辽宁&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;黑龙江&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;湖南&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;安徽&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;山东&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;新疆&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;江苏&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;浙江&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;江西&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;湖北&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;广西&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;甘肃&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;山西&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;内蒙古&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;陕西&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;吉林&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;福建&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;贵州&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;广东&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;青海&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;西藏&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;四川&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;宁夏&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;海南&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;台湾&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;香港&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;澳门&#39;,value:Math.round(Math.random() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:&#39;iphone4&#39;, 
 
      type:&#39;map&#39;, 
 
      mapType:&#39;china&#39;, 
 
      selectedMode: &#39;single&#39;, 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:&#39;#ff8c00&#39; },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:&#39;北京&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;天津&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;上海&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;重庆&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;河北&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;安徽&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;新疆&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;浙江&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;江西&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;山西&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;内蒙古&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;吉林&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;福建&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;广东&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;西藏&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;四川&#39;,value:Math.round(Math.random() *1000) }, 

        { name:&#39;宁夏&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;香港&#39;,value:Math.round(Math.random() *1000) }, 
        { name:&#39;澳门&#39;,value:Math.round(Math.random() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:&#39;iphone5&#39;, 
 
      type:&#39;map&#39;, 
 
      mapType:&#39;china&#39;, 
 
      selectedMode: &#39;single&#39;, 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:&#39;#da70d6&#39; },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:&#39;北京&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;天津&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;上海&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;广东&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;台湾&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;香港&#39;,value:Math.round(Math.random() *1000) }, 
 
        { name:&#39;澳门&#39;,value:Math.round(Math.random() *1000) } 
 
      ] 
 
    } 
  ] 
      }; 
       //以下的这段代码主要是用来处理用户的选择,应用场景是可以做地图的交互,比如点击地图上的某一个省,获取相应的省的指标变化等。 
       //需要特别注意的是,如果需要点击某一省作地图的操作交互的话,还需要为series属性的每一项添加一个selectedMode属性,这里的属性值为 &#39;single&#39;即单选,也可多选 
  varecConfig= require(&#39;echarts/config&#39;); 
      myChart.on(ecConfig.EVENT.MAP_SELECTED,function (param) { 
        varselected=param.selected; 
        varmapSeries=option.series[0]; 
        vardata= []; 
        varlegendData= []; 
        varname; 
        for (varp=0,len=mapSeries.data.length; p<len; p++) { 
          name=mapSeries.data[p].name; 
          mapSeries.data[p].selected=selected[name]; 
          if (selected[name]) { 
            alert(name); //这里只是简单的做一个事例说明,弹出用户所选的省,如需做其他的扩展,可以在这里边添加相应的操作  
 
          } 
        } 
      });         
      myChart.setOption(option); 
    } 
  ); 
  </script>

Nach Abschluss der oben genannten Vorgänge ist der Effekt wie folgt:


LineChart

Mit Ausnahme von Karten und Diagrammen werden die anderen Symbole auf die gleiche Weise verwendet. Tatsächlich besteht der Unterschied zwischen anderen Diagrammen und Kartendiagrammen im Verweis auf die Konfigurationsdatei. Hier ist nur ein Beispiel für ein Liniendiagramm, die anderen Beispiele sind gleich.


<scripttype="text/javascript"> 
 
    require.config({ 
 
      paths: { 
 
        echarts:&#39;./echarts/echarts&#39;, 
 
        &#39;echarts/chart/bar&#39;:&#39;./echarts/echarts&#39;,//这里需要注意的是除了mapchart使用的配置文件为echarts-map之外, 
其他的图形引用的配置文件都为echarts,这也是一般的图形跟地图的区别 
 
        &#39;echarts/chart/line&#39;:&#39;./echarts/echarts&#39; 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      &#39;echarts&#39;, 
 
      &#39;echarts/chart/bar&#39;, 
 
      &#39;echarts/chart/line&#39; 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById(&#39;main&#39;)); 
 
      option= { 
 
        tooltip: { 
 
          trigger:&#39;axis&#39; 
 
        }, 
 
        legend: { 
 
          data: [&#39;邮件营销&#39;,&#39;联盟广告&#39;,&#39;视频广告&#39;,&#39;直接问&#39;,&#39;搜索引擎&#39;] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: [&#39;line&#39;,&#39;bar&#39;], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:&#39;category&#39;, 
 
      boundaryGap:false, 
 
      data: [&#39;周一&#39;,&#39;周二&#39;,&#39;周三&#39;,&#39;周四&#39;,&#39;周五&#39;,&#39;周六&#39;,&#39;周日&#39;] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:&#39;value&#39;, 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:&#39;邮件营销&#39;, 
 
      type:&#39;line&#39;, 
 
      stack:&#39;总量&#39;, 
 
      data: [120,132,101,134,90,230,210] 
 
    }, 
 
    { 
 
      name:&#39;联盟广告&#39;, 
 
      type:&#39;line&#39;, 
 
      stack:&#39;总量&#39;, 
 
      data: [220,182,191,234,290,330,310] 
 
    }, 
 
    { 
 
      name:&#39;视频广告&#39;, 
 
      type:&#39;line&#39;, 
 
      stack:&#39;总量&#39;, 
 
      data: [150,232,201,154,190,330,410] 
 
    }, 
 
    { 
 
      name:&#39;直接访问&#39;, 
 
      type:&#39;line&#39;, 
 
      stack:&#39;总量&#39;, 
 
      data: [320,332,301,334,390,330,320] 
 
    }, 
 
    { 
 
      name:&#39;搜索引擎&#39;, 
 
      type:&#39;line&#39;, 
 
      stack:&#39;总量&#39;, 
 
      data: [820,932,901,934,1290,1330,1320] 
 
    } 
 
  ] 
 
      };           
 
  
 
      myChart.setOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <pid="main1"style="height:500px;border:1px solid #ccc;padding:10px;"></p>   
 
  <scripttype="text/javascript"> 
 
    require.config({ 
 
      paths: { 
 
        echarts:&#39;./echarts/echarts&#39;, 
 
        &#39;echarts/chart/bar&#39;:&#39;./echarts/echarts&#39;, 
 
        &#39;echarts/chart/line&#39;:&#39;./echarts/echarts&#39; 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      &#39;echarts&#39;, 
 
      &#39;echarts/chart/bar&#39;, 
 
      &#39;echarts/chart/line&#39; 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById(&#39;main1&#39;)); 
 
      option= { 
 
        title: { 
 
          text:&#39;未来一周气温变化&#39;, 
 
          subtext:&#39;纯属虚构&#39; 
 
        }, 
 
        tooltip: { 
 
          trigger:&#39;axis&#39; 
 
        }, 
 
        legend: { 
 
          data: [&#39;最高气温&#39;最低气温&#39;] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: [&#39;line&#39;,&#39;bar&#39;], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:&#39;category&#39;, 
 
      boundaryGap:false, 
 
      data: [&#39;周一&#39;,&#39;周二&#39;,&#39;周三&#39;,&#39;周四&#39;,&#39;周五&#39;,&#39;周六&#39;,&#39;周日&#39;] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:&#39;value&#39;, 
 
      axisLabel: { 
 
        formatter:&#39;{value} &#39; 
 
      }, 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:&#39;最高气温&#39;, 
 
      type:&#39;line&#39;, 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:&#39;rgba(0,0,0,4)&#39; 
 
          } 
 
        } 
 
      }, 
 
      data: [11,11,15,13,12,13,10] 
 
    }, 
 
    { 
 
      name:&#39;最低气温&#39;, 
 
      type:&#39;line&#39;, 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:&#39;rgba(0,0,0,4)&#39; 
 
          } 
 
        } 
 
      }, 
 
      data: [-2,1,2,5,3,2,0] 
 
    } 
 
  ] 
 
      };           
 
      myChart.setOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <pid="main2"style="height:500px;border:1px solid #ccc;padding:10px;"></p>   
 
  <scripttype="text/javascript"> 
 
    require.config({ 
 
      paths: { 
 
        echarts:&#39;./echarts/echarts&#39;, 
 
        &#39;echarts/chart/bar&#39;:&#39;./echarts/echarts&#39;, 
 
        &#39;echarts/chart/line&#39;:&#39;./echarts/echarts&#39; 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      &#39;echarts&#39;, 
 
      &#39;echarts/chart/bar&#39;, 
 
      &#39;echarts/chart/line&#39; 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ec.init(document.getElementById(&#39;main2&#39;)); 
 
      option= { 
 
        title: { 
 
          text:&#39;某楼盘销售情况&#39;, 
 
          subtext:&#39;纯属虚构&#39; 
 
        }, 
 
        tooltip: { 
 
          trigger:&#39;axis&#39; 
 
        }, 
 
        legend: { 
 
          data: [&#39;意向&#39;,&#39;预购&#39;,&#39;成交&#39;] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: [&#39;line&#39;,&#39;bar&#39;], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:&#39;category&#39;, 
 
      boundaryGap:false, 
 
      data: [&#39;周&#39;,&#39;周二&#39;,&#39;周三&#39;,&#39;周四&#39;,&#39;周五&#39;,&#39;周六&#39;,&#39;周日&#39;] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:&#39;value&#39; 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:&#39;成交&#39;, 
 
      type:&#39;line&#39;, 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:&#39;default&#39;}} }, 
 
      data: [10,12,21,54,260,830,710] 
 
    }, 
 
    { 
 
      name:&#39;预购&#39;, 
 
      type:&#39;line&#39;, 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:&#39;default&#39;}} }, 
 
      data: [30,182,434,791,390,30,10] 
 
    }, 
 
    { 
 
      name:&#39;意向&#39;, 
 
      type:&#39;line&#39;, 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:&#39;default&#39;}} }, 
 
      data: [1320,1132,601,234,120,90,20] 
 
    } 
 
  ] 
 
      };           
 
      myChart.setOption(option); 
 
    } 
 
  ); 
 
  </script>

Nach Abschluss der oben genannten Vorgänge sieht das Effektbild wie folgt aus:

Das obige ist der detaillierte Inhalt vonEinführung in die grundlegende Verwendung des Echart-Plug-Ins usw. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn