Maison  >  Article  >  interface Web  >  Introduction à l'utilisation de base du plug-in echart, etc.

Introduction à l'utilisation de base du plug-in echart, etc.

巴扎黑
巴扎黑original
2017-08-12 16:15:052935parcourir

Cet article présente principalement l'introduction d'echart. L'éditeur pense que c'est plutôt bien, je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil

1. Téléchargez le plug-in

Ce qui suit est le lien de téléchargement pour ECharts. ECharts s'appuie également sur un autre plug-in interne appelé ZRender. Bien sûr, ZRender n'est pas requis pour la plupart des graphiques, mais ZRender est requis pour les contrôles de carte et autres contrôles de rendu complexes. Afin d'éviter des problèmes inutiles, il est recommandé de télécharger également ZRender lors du téléchargement d'ECharts.

Adresse de téléchargement ECharts : http://echarts.baidu.com/

Adresse de téléchargement ZRender : http://ecomfe.github.io/zrender/index. html

Après le téléchargement, décompressez les structures de répertoires de fichiers respectives comme suit :

ECharts :

 

ZRender :


Référence du plug-in

Tout d'abord, créez une nouvelle application Web, puis ajoutez le fichier que vous venez de télécharger. La structure de répertoires spécifique est la suivante :

.

Voici les points suivants à noter :

  • Tous les fichiers liés aux ECharts sont dans le dossier echarts

  • Le contenu des echarts Les dossiers sont divisés en deux parties

1) La partie est le fichier js commençant par echarts. Ces fichiers proviennent tous des fichiers du dossier js dans le répertoire de fichiers ECharts en 1., c'est-à-dire. est, en 1. Les fichiers sous js marqués dans la case rouge de l'image. Comme suit :

2) L'autre partie est un dossier nommé zrender. Ce qui nécessite une attention particulière ici, c'est que le dossier doit être nommé zrender, car les js dans echarts Les références. à zrender dans le fichier ont tous zrender comme répertoire racine. Le contenu du dossier zrender est le contenu du dossier src dans le répertoire du fichier zrender en 1., comme suit :

.

3. Utilisation spécifique dans la page

Après avoir configuré selon les étapes ci-dessus, nous pouvons le référencer dans la page. Ici, c'est principalement pour. démontrer l'utilisation du contrôle de carte, car la référence de la carte est différente de la référence d'autres graphiques de base. La présentation d'autres graphiques sera également brièvement démontrée.

MapChart

Ajoutez d'abord une page aspx ou une page html dans le même répertoire que le dossier echarts en 2 (c'est-à-dire le dossier Modules). Il convient de noter que si vous utilisez des echarts dans une page aspx, vous devez placer le p à restituer en dehors de la balise form, sinon les graphiques ne seront pas affichés.

Ajoutez une référence aux echarts dans la balise head comme suit :


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

dans la body , ajoutez un p à l'extérieur de la balise form, qui est utilisée comme conteneur pour le rendu des graphiques. Comme suit :


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

Sous la balise p ajoutée ci-dessus, ajoutez l'extrait de code js suivant, comme suit :


 <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>

Après avoir terminé les opérations ci-dessus, l'effet est le suivant :


LineChart

À l'exception des cartes et graphiques, les autres icônes sont utilisées de la même manière. En fait, la différence entre les autres graphiques et les cartes cartographiques réside dans la référence au fichier de configuration. Voici seulement un exemple de graphique linéaire, les autres exemples sont les mêmes.


<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>

Après avoir terminé les opérations ci-dessus, l'image de l'effet est la suivante :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn