vueでのEchartsチャートの使用方法の追加の詳細な説明

小云云
リリース: 2018-01-15 17:11:06
オリジナル
11923 人が閲覧しました

プロジェクトでは折れ線グラフ、棒グラフ、円グラフなどを使用する必要があることがよくあります。以前は heightCharts を使用していましたが、後でこの製品はオープンソースではないため、ただ使用するだけでは時間の無駄だと感じました。 vue-cli で構築されたプロジェクトに eCharts が追加されているので、以下にその具体的な手順と私自身の勉強メモを記載します。

現在、フロントエンドは一般的に大量のデータの視覚化を完了する必要があります。今はビッグデータとクラウドコンピューティングの時代で、データの可視化が徐々にトレンドになってきています。 ECharts と d3.js は、視覚化のための成熟したフレームワークです。あなたが作成するチャートはあなたの創造性を満たすものであると言えます。

この 2 つと比較すると、D3 は他の多くのテーブル プラグインで使用されています。これにより、任意のデータを DOM にバインドし、データ駆動型の変換をドキュメントに適用できます。これを使用して、配列を含む基本的な HTML テーブルを作成したり、その滑らかな遷移やインタラクションを利用して、同様のデータを含む見事な SVG 棒グラフを作成したりできます。

ECharts チャートはアプリケーションにより適しており、見た目は豪華ですが、非常に実用的です。


EChartsの基本テンプレートは非常にシンプルで、d3よりも簡単に始められます。

Echarts チャートの基本的な使い方

1. この記事で紹介する最新バージョンである vue-cli プロジェクトに webpack 設定を追加します。バージョン 3.1.1 より前は、npm 上の ECharts のパッケージは非公式に保守されていました。3.1.1 以降、npm 上の ECharts と zrender のパッケージは公式の EFE によって保守されていました。

npmを使用してpackage.jsonファイルに構成を追加し、関連するnpmパッケージの依存関係をダウンロードします

npm install echarts --save
ログイン後にコピー

次に、プロジェクトファイルのエントリjsファイルmain.jsに

import echarts from "echarts"
ログイン後にコピー

を追加します

で依存関係のインスタンスを作成しますアイコンを追加する必要があるコンポーネント

var echarts = require('echarts');
ログイン後にコピー
このメソッドを使用して取得するものは、すべてのチャートとコンポーネントをロードした ECharts パッケージなので、ボリュームは比較的大きくなります。必要に応じて、必要なモジュールのみをインポートすることもできます。たとえば

// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入柱状图
require('echarts/lib/chart/bar');
// 引入提示框和标题组件
require('echarts/lib/component/tooltip');
require('echarts/lib/component/title');
ログイン後にコピー
各種リソースのリストについては、公式githubリポジトリhttps://github.com/ecomfe/echarts/blob/master/index.jsを参照してください

必要なdomを作成します

<!-- ECharts图表测试 -->
 <p id="charts" style="width:&#39;100%&#39;,height:&#39;3.54rem&#39;">
  <p id="main" :style="{width:&#39;100%&#39;,height:&#39;3.54rem&#39;}"></p>
 </p>
ログイン後にコピー
template js:

export default {
 name: 'Bank',
 data () {
 return {
 }
 },
 components: {
 },
 computed: {
 },
 methods: {
 },
 mounted() {
 /*ECharts图表*/
 var myChart = echarts.init(document.getElementById('main'));
 myChart.setOption({
  series : [
   {
    name: '访问来源',
    type: 'pie',
    radius: '55%',
    itemStyle: {
    normal: {
      // 阴影的大小
      shadowBlur: 200,
      // 阴影水平方向上的偏移
      shadowOffsetX: 0,
      // 阴影垂直方向上的偏移
      shadowOffsetY: 0,
      // 阴影颜色
      shadowColor: 'rgba(0, 0, 0, 0.5)'
     }
    },
    data:[
     {value:400, name:'搜索引擎'},
     {value:335, name:'直接访问'},
     {value:310, name:'邮件营销'},
     {value:274, name:'联盟广告'},
     {value:235, name:'视频广告'}
    ]
   }
  ]
 })
 }
}
ログイン後にコピー

eCharts のイベント:


ECharts は、 'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup'、'mouseover'、'mouseout' イベントなどの通常のマウス イベント タイプをサポートします。

// 基于准备好的dom,初始化ECharts实例
var myChart = echarts.init(document.getElementById('main'));
ログイン後にコピー
// チャートの構成項目とデータを指定します

var option = {
 xAxis: {
  data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
 },
 yAxis: {},
 series: [{
  name: '销量',
  type: 'bar',
  data: [5, 20, 36, 10, 10, 20]
 }]
};
ログイン後にコピー

// 指定した構成項目とデータを使用してチャートを表示します。

myChart.setOption(option);
// 处理点击事件并且跳转到相应的百度搜索页面
myChart.on('click', function (params) {
 window.open('https://www.baidu.com/s?wd=' + encodeURIComponent(params.name));
});
ログイン後にコピー
すべてのマウス イベントには、クリックされたグラフィックに関するデータ情報を含むオブジェクトであるパラメーター params が次の形式で含まれます:

{
 // 当前点击的图形元素所属的组件名称,
 // 其值如 'series'、'markLine'、'markPoint'、'timeLine' 等。
 componentType: string,
 // 系列类型。值可能为:'line'、'bar'、'pie' 等。当 componentType 为 'series' 时有意义。
 seriesType: string,
 // 系列在传入的 option.series 中的 index。当 componentType 为 'series' 时有意义。
 seriesIndex: number,
 // 系列名称。当 componentType 为 'series' 时有意义。
 seriesName: string,
 // 数据名,类目名
 name: string,
 // 数据在传入的 data 数组中的 index
 dataIndex: number,
 // 传入的原始数据项
 data: Object,
 // sankey、graph 等图表同时含有 nodeData 和 edgeData 两种 data,
 // dataType 的值会是 'node' 或者 'edge',表示当前点击在 node 还是 edge 上。
 // 其他大部分图表中只有一种 data,dataType 无意义。
 dataType: string,
 // 传入的数据值
 value: number|Array
 // 数据图形的颜色。当 componentType 为 'series' 时有意义。
 color: string
}
ログイン後にコピー
マウスがクリックされた場所を区別する方法:

myChart.on('click', function (params) {
 if (params.componentType === 'markPoint') {
  // 点击到了 markPoint 上
  if (params.seriesIndex === 5) {
   // 点击到了 index 为 5 的 series 的 markPoint 上。
  }
 }
 else if (params.componentType === 'series') {
  if (params.seriesType === 'graph') {
   if (params.dataType === 'edge') {
    // 点击到了 graph 的 edge(边)上。
   }
   else {
    // 点击到了 graph 的 node(节点)上。
   }
  }
 }

});
ログイン後にコピー
このオブジェクトはコールバックで取得できます。関数独自のデータ ウェアハウスでデータ名とシリーズ名がインデックス付けされた後、次のサンプル コードに示すように、他の情報を取得してグラフを更新したり、フローティング レイヤーを表示したりできます。

myChart.on('click', function (parmas) {
 $.get('detail?q=' + params.name, function (detail) {
  myChart.setOption({
   series: [{
    name: 'pie',
    // 通过饼图表现单个柱子中的数据分布
    data: [detail.data]
   }]
  });
 });
});
ログイン後にコピー
関連する推奨事項:

Echarts のチャート表示が不完全な場合はどうすればよいですか?

PHP Echartsを使用して統計レポートを生成する詳細な説明

HTML5、JS、JQuery、EChartsの非同期読み込み

🎜

以上がvueでのEchartsチャートの使用方法の追加の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート