ホームページ  >  記事  >  WeChat アプレット  >  WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

青灯夜游
青灯夜游転載
2021-10-19 10:55:184446ブラウズ

この記事では、npm を使用して WeChat アプレットに EChart を導入する方法を紹介します。

WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

Apache ECharts は、WeChat ミニ プログラムで Echarts を使用するための コード サンプルと ec-canvas コンポーネントを公式に提供していますが、まだ提供されていません。 npm パッケージを公開します。

このプロジェクトは、ec-canvas をサポートするために公式コードの上に変更されています。このコンポーネントは、npm をサポートするために echarts に渡されます。 ##echarts または、ローカル カスタマイズ後の echarts。これは、Web の開発経験により一致します。

そして、npm を介した小規模プログラムのインストールと使用をサポートする

npm パッケージを公開します。また、Taro をサポートして、オンデマンドで echarts を導入し、パッケージ サイズを削減します。 [関連する学習の推奨事項: 簡単なプログラム開発チュートリアル]

インストール

npm install echarts-for-weixin

小さなプログラム リファレンス

リファレンス コード

ツール/デモ

1. まず、ページ

<pre class="brush:js;toolbar:false;">{ &quot;usingComponents&quot;: { &quot;ec-canvas&quot;: &quot;echarts-for-weixin&quot; } }</pre>

2 の json ファイルに usingComponents 構成フィールドを追加します。プロジェクトのルート ディレクトリ

package.json を作成し、npm install を実行します。依存関係をインストールします

{
  "dependencies": {
    "echarts": "^5.1.2",
    "echarts-for-weixin": "^1.0.0"
  }
}

3. ミニ プログラム開発者ツールで npm をビルドします

開発者ツールのメニュー バーをクリックします: [ツール]-->[npm をビルド]

WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

4.

echarts をページに導入します。npm から echarts を導入することも、ローカルのカスタム ビルドの echarts を導入することもできます。 ボリュームを削減するには

import * as echarts from &#39;echarts&#39; // 从 npm 引入 echarts
import * as echarts from &#39;./echarts&#39; // 或者从本地引入自定义构建的 echarts

5。その後、対応するページの wxml でコンポーネントを直接使用できます

<view class="container">
  <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" echarts="{{ echarts }}" ec="{{ ec }}"></ec-canvas>
</view>

6。

ec-canvas# の具体的な使用法については、 ## およびチャートの初期化方法については、Echarts 公式ミニ プログラムの例

import * as echarts from &#39;echarts&#39;

let chart = null;

function initChart(canvas, width, height, dpr) {
  chart = echarts.init(canvas, null, {
    width: width,
    height: height,
    devicePixelRatio: dpr // new
  });
  canvas.setChart(chart);

  var option = {
    tooltip: {
      trigger: &#39;axis&#39;,
      axisPointer: {            // 坐标轴指示器,坐标轴触发有效
        type: &#39;shadow&#39;        // 默认为直线,可选为:&#39;line&#39; | &#39;shadow&#39;
      },
      confine: true
    },
    legend: {
      data: [&#39;热度&#39;, &#39;正面&#39;, &#39;负面&#39;]
    },
    grid: {
      left: 20,
      right: 20,
      bottom: 15,
      top: 40,
      containLabel: true
    },
    xAxis: [
      {
        type: &#39;value&#39;,
        axisLine: {
          lineStyle: {
            color: &#39;#999&#39;
          }
        },
        axisLabel: {
          color: &#39;#666&#39;
        }
      }
    ],
    yAxis: [
      {
        type: &#39;category&#39;,
        axisTick: { show: false },
        data: [&#39;汽车之家&#39;, &#39;今日头条&#39;, &#39;百度贴吧&#39;, &#39;一点资讯&#39;, &#39;微信&#39;, &#39;微博&#39;, &#39;知乎&#39;],
        axisLine: {
          lineStyle: {
            color: &#39;#999&#39;
          }
        },
        axisLabel: {
          color: &#39;#666&#39;
        }
      }
    ],
    series: [
      {
        name: &#39;热度&#39;,
        type: &#39;bar&#39;,
        label: {
          normal: {
            show: true,
            position: &#39;inside&#39;
          }
        },
        data: [300, 270, 340, 344, 300, 320, 310],
        itemStyle: {
          // emphasis: {
          //   color: &#39;#37a2da&#39;
          // }
        }
      },
      {
        name: &#39;正面&#39;,
        type: &#39;bar&#39;,
        stack: &#39;总量&#39;,
        label: {
          normal: {
            show: true
          }
        },
        data: [120, 102, 141, 174, 190, 250, 220],
        itemStyle: {
          // emphasis: {
          //   color: &#39;#32c5e9&#39;
          // }
        }
      },
      {
        name: &#39;负面&#39;,
        type: &#39;bar&#39;,
        stack: &#39;总量&#39;,
        label: {
          normal: {
            show: true,
            position: &#39;left&#39;
          }
        },
        data: [-20, -32, -21, -34, -90, -130, -110],
        itemStyle: {
          // emphasis: {
          //   color: &#39;#67e0e3&#39;
          // }
        }
      }
    ]
  };

  chart.setOption(option);
  return chart;
}

Page({
  data: {
    echarts,
    ec: {
      onInit: initChart
    }
  },
  onReady() {
    setTimeout(function () {
      // 获取 chart 实例的方式
      console.log(chart)
    }, 2000);
  }
})
Taro リファレンス

リファレンス コード

examples/taro

# を参照してください。 ##準備

インストールの依存関係

    npm install echarts-for-weixin
  1. プロジェクトのルート ディレクトリに新しいファイルを作成します
project.package.json
    または、名前をカスタマイズします。このファイルはアプレット
  1. package.json であり、次のステップで npm ビルド メソッドをカスタマイズするためにアプレットを追加します。この目的は、プロジェクトnode_modules
  2. project.package.json

{
  "dependencies": {
    "echarts": "^5.1.2",
    "echarts-for-weixin": "^1.0.2"
  }
}
を共有できるようにすることです。

project.config
  1. setting に、npm ビルド メソッドをカスタマイズするための小さなプログラムを追加します。npm メソッドをビルドするための node_modules および miniprogram_npm の場所のカスタマイズを参照してください。
    {
      "setting": {
        "packNpmManually": true,
        "packNpmRelationList": [
          {
            "packageJsonPath": "../project.package.json",
            "miniprogramNpmDistDir": "./"
          }
        ]
      }
    }
  2. プロジェクト開発用の
Taro
    の開発コマンドまたはパッケージ化コマンドを実行します。
  1. <pre class="brush:js;toolbar:false;">npm run dev:weapp</pre>
  2. アプレット開発者ツールで npm をビルドします。注: ミニ プログラム開発ツールによって開かれるプロジェクト ディレクトリは、
dist
    フォルダーです。
  1. 開発者ツールのメニュー バーをクリックします: [ツール]-->[Build npm
  2. ]

Echarts の導入WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

グローバル

app.config.js
    に追加するか、
  1. echarts が必要な場合は個別に使用します 参照コンポーネント <pre class="brush:js;toolbar:false;">{ &quot;usingComponents&quot;: { &quot;ec-canvas&quot;: &quot;echarts-for-weixin&quot; } }</pre>
  2. をページ構成に追加し、
echarts
    をページに導入します。## から
  1. echarts を導入できます。 #npm、ローカルのカスタム ビルド echarts を導入してサイズを削減することもできます
    import * as echarts from &#39;echarts&#39; // 从 npm 引入 echarts
    import * as echarts from &#39;./echarts&#39; // 或者从本地引入自定义构建的 echarts
    導入した
  2. echarts
をコンポーネントに渡します
  1. <ec-canvas 
      id=&#39;mychart-dom-area&#39; 
      canvas-id=&#39;mychart-area&#39; 
      echarts={echarts} // 将引入的 echarts 传给组件
      ec={this.state.ec}
    />
    #ec-canvas
  2. 具体的な使用方法とチャートの初期化方法については、
Echarts 公式アプレットの例
  1. を参照してください。 #コード例
    function initChart(canvas, width, height) {  const chart = echarts.init(canvas, null, {    width: width,    height: height
      })
      canvas.setChart(chart)  const model = {    yCates: ['Saturday', 'Friday', 'Thursday',      'Wednesday', 'Tuesday', 'Monday',      'Sunday'],    xCates: ['1', '2', '3', '4', '5'],    data: [      // [yCateIndex, xCateIndex, value]
          [0, 0, 5], [0, 1, 7], [0, 2, 3], [0, 3, 5], [0, 4, 2],
          [1, 0, 1], [1, 1, 2], [1, 2, 4], [1, 3, 8], [1, 4, 2],
          [2, 0, 2], [2, 1, 3], [2, 2, 8], [2, 3, 6], [2, 4, 7],
          [3, 0, 3], [3, 1, 7], [3, 2, 5], [3, 3, 1], [3, 4, 6],
          [4, 0, 3], [4, 1, 2], [4, 2, 7], [4, 3, 8], [4, 4, 9],
          [5, 0, 2], [5, 1, 2], [5, 2, 3], [5, 3, 4], [5, 4, 7],
          [6, 0, 6], [6, 1, 5], [6, 2, 3], [6, 3, 1], [6, 4, 2]
        ]
      }  const data = model.data.map(function (item) {    return [item[1], item[0], item[2] || '-']
      })  const option = {    tooltip: {      position: 'top'
        },    animation: false,    grid: {      bottom: 60,      top: 10,      left: 80
        },    xAxis: {      type: 'category',      data: model.xCates
        },    yAxis: {      type: 'category',      data: model.yCates
        },    visualMap: {      min: 1,      max: 10,      show: false,      calculable: true,      orient: 'horizontal',      left: 'center',      bottom: 10,      inRange: {        color: ['#37A2DA', '#32C5E9', '#67E0E3', '#91F2DE', '#FFDB5C', '#FF9F7F'],
          }
        },    series: [{      name: 'Punch Card',      type: 'heatmap',      data: data,      label: {        normal: {          show: true
            }
          },      itemStyle: {        emphasis: {          shadowBlur: 10,          shadowColor: 'rgba(0, 0, 0, 0.5)'
            }
          }
        }]
      }
    
      chart.setOption(option)  return chart
    }export default class Echarts extends React.Component {
    
      state = {    ec: {      onInit: initChart
        }
      }
    
      render () {    return (      <view>        <ec-canvas></ec-canvas>      </view>
        )
      }
    }复制代码
  2. Taro オンデマンド リファレンス
リファレンス コードexamples/taro-manual-load

注意: ミニ プログラム開発者ツールが開いています プロジェクト ディレクトリは、パッケージ化された

dist

ディレクトリです準備作業

1. 依存関係をインストールします<pre class="brush:js;toolbar:false;">npm install echarts-for-weixin</pre><p>2、在项目根目录中新建文件 <code>project.package.json 或者自定义命名,此文件是小程序的 package.json,并在下一步中添加小程序自定义构建 npm 方式。并配置 config/index.js 中的 copy 选项,将 project.package.json 复制到 dist 目录下并且重命名为 package.json。并且复制 node_modules/echarts-for-weixindist/node_modules/echarts-for-weixin 避免在小程序开发者工具中打开的项目重新安装依赖

project.package.json

{
  "dependencies": {
    "echarts-for-weixin": "^1.0.2"
  }
}

config/index.js

{
  copy: {
    patterns: [
      { from: &#39;project.package.json&#39;, to: &#39;dist/package.json&#39; }, // 指定需要 copy 的文件
      { from: &#39;node_modules/echarts-for-weixin/&#39;, to: &#39;dist/node_modules/echarts-for-weixin/&#39; }
    ],
    options: {}
  }
}

3、在 project.configsetting 中添加小程序自定义构建 npm 方式,参考 自定义 node_modules 和 miniprogram_npm 位置的构建 npm 方式

{
  "setting": {
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./"
      }
    ]
  }
}

4、执行 Taro 的开发或者打包命令进行项目开发

<pre class="brush:js;toolbar:false;">npm run dev:weapp</pre>

5、小程序开发者工具中构建 npm。注意:小程序开发工具打开的项目目录是 dist 文件夹

点击开发者工具中的菜单栏:工具 --> 构建 npm

WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

引入 Echarts

1、在全局的 app.config.js 中添加或者在单个需要使用到 echarts 的页面配置中添加引用组件

<pre class="brush:js;toolbar:false;">{ &quot;usingComponents&quot;: { &quot;ec-canvas&quot;: &quot;echarts-for-weixin&quot; } }</pre>

2、在页面中引入 echarts/core 和需要的组件,Taro 打包会只打包引入的组件,这样达到按需引入的目的

// Import the echarts core module, which provides the necessary interfaces for using echarts.
import * as echarts from &#39;echarts/core&#39;;
// Import charts, all with Chart suffix
import {
  // LineChart,
  BarChart,
  // PieChart,
  // ScatterChart,
  // RadarChart,
  // MapChart,
  // TreeChart,
  // TreemapChart,
  // GraphChart,
  // GaugeChart,
  // FunnelChart,
  // ParallelChart,
  // SankeyChart,
  // BoxplotChart,
  // CandlestickChart,
  // EffectScatterChart,
  // LinesChart,
  // HeatmapChart,
  // PictorialBarChart,
  // ThemeRiverChart,
  // SunburstChart,
  // CustomChart,
} from &#39;echarts/charts&#39;;
// import components, all suffixed with Component
import {
  // GridSimpleComponent,
  GridComponent,
  // PolarComponent,
  // RadarComponent,
  // GeoComponent,
  // SingleAxisComponent,
  // ParallelComponent,
  // CalendarComponent,
  // GraphicComponent,
  // ToolboxComponent,
  TooltipComponent,
  // AxisPointerComponent,
  // BrushComponent,
  TitleComponent,
  // TimelineComponent,
  // MarkPointComponent,
  // MarkLineComponent,
  // MarkAreaComponent,
  // LegendComponent,
  // LegendScrollComponent,
  // LegendPlainComponent,
  // DataZoomComponent,
  // DataZoomInsideComponent,
  // DataZoomSliderComponent,
  // VisualMapComponent,
  // VisualMapContinuousComponent,
  // VisualMapPiecewiseComponent,
  // AriaComponent,
  // TransformComponent,
  DatasetComponent,
} from &#39;echarts/components&#39;;
// Import renderer, note that introducing the CanvasRenderer or SVGRenderer is a required step
import {
  CanvasRenderer,
  // SVGRenderer,
} from &#39;echarts/renderers&#39;;
// Register the required components
echarts.use(
  [
    TitleComponent,
    TooltipComponent, 
    GridComponent, 
    BarChart, 
    CanvasRenderer, 
    HeatmapChart, 
    VisualMapComponent,
    VisualMapContinuousComponent,
    VisualMapPiecewiseComponent,
  ]
);

3、将引入的 echarts 传给组件

<ec-canvas 
  id=&#39;mychart-dom-area&#39; 
  canvas-id=&#39;mychart-area&#39; 
  echarts={echarts} // 将引入的 echarts 传给组件
  ec={this.state.ec}
/>

4、ec-canvas 的具体用法和如何初始化图表请参考 Echarts 官方小程序示例

function initChart(canvas, width, height) {
  const chart = echarts.init(canvas, null, {
    width: width,
    height: height
  })
  canvas.setChart(chart)
  const model = {
    yCates: [&#39;Saturday&#39;, &#39;Friday&#39;, &#39;Thursday&#39;,
      &#39;Wednesday&#39;, &#39;Tuesday&#39;, &#39;Monday&#39;,
      &#39;Sunday&#39;],
    xCates: [&#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;],
    data: [
      // [yCateIndex, xCateIndex, value]
      [0, 0, 5], [0, 1, 7], [0, 2, 3], [0, 3, 5], [0, 4, 2],
      [1, 0, 1], [1, 1, 2], [1, 2, 4], [1, 3, 8], [1, 4, 2],
      [2, 0, 2], [2, 1, 3], [2, 2, 8], [2, 3, 6], [2, 4, 7],
      [3, 0, 3], [3, 1, 7], [3, 2, 5], [3, 3, 1], [3, 4, 6],
      [4, 0, 3], [4, 1, 2], [4, 2, 7], [4, 3, 8], [4, 4, 9],
      [5, 0, 2], [5, 1, 2], [5, 2, 3], [5, 3, 4], [5, 4, 7],
      [6, 0, 6], [6, 1, 5], [6, 2, 3], [6, 3, 1], [6, 4, 2]
    ]
  }

  const data = model.data.map(function (item) {
    return [item[1], item[0], item[2] || &#39;-&#39;]
  })

  const option = {
    tooltip: {
      position: &#39;top&#39;
    },
    animation: false,
    grid: {
      bottom: 60,
      top: 10,
      left: 80
    },
    xAxis: {
      type: &#39;category&#39;,
      data: model.xCates
    },
    yAxis: {
      type: &#39;category&#39;,
      data: model.yCates
    },
    visualMap: {
      min: 1,
      max: 10,
      show: false,
      calculable: true,
      orient: &#39;horizontal&#39;,
      left: &#39;center&#39;,
      bottom: 10,
      inRange: {
        color: [&#39;#37A2DA&#39;, &#39;#32C5E9&#39;, &#39;#67E0E3&#39;, &#39;#91F2DE&#39;, &#39;#FFDB5C&#39;, &#39;#FF9F7F&#39;],
      }
    },
    series: [{
      name: &#39;Punch Card&#39;,
      type: &#39;heatmap&#39;,
      data: data,
      label: {
        normal: {
          show: true
        }
      },
      itemStyle: {
        emphasis: {
          shadowBlur: 10,
          shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;
        }
      }
    }]
  }

  chart.setOption(option)
  return chart
}

export default class Echarts extends React.Component {

  state = {
    ec: {
      onInit: initChart
    }
  }

  render () {
    return (
      <View className=&#39;echarts&#39;>
        <ec-canvas 
          id=&#39;mychart-dom-area&#39; 
          canvas-id=&#39;mychart-area&#39; 
          echarts={echarts} 
          ec={this.state.ec}
        />
      </View>
    )
  }
}

5、可以查看小程序开发者工具中的依赖分析,确定文件大小以及是否正确按需引入

WeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。

更多编程相关知识,请访问:编程入门!!

以上がWeChat アプレットに EChart をインストールして参照する方法について詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。