ECharts for React

一、介紹

ECharts 是一款由百度開發的基於 JavaScript 的數據可視化庫,它的特點在於具有良好的可定製性和數據可視化效果,同時支持多種數據格式,能夠快速搭建一個漂亮的數據可視化界面。而 ECharts for React 就是將 ECharts 庫與 React 框架進行整合的組件庫,使得在 React 應用中使用 ECharts 更加便捷。

二、安裝和使用

安裝 ECharts for React 可以使用 npm 安裝命令:

{`npm install echarts-for-react`}

使用 ECharts for React,需要先導入 echarts 和 echarts-for-react:

{`import ReactECharts from 'echarts-for-react';
import echarts from 'echarts';`}

然後即可在 React 組件中使用 ReactEcharts 組件來渲染圖表了:

{`function Chart() {
  const option = {
    // ECharts 配置項
  };
  
  return (
    
  );
}
`}

三、組件 API

1. ReactECharts 組件屬性

ReactECharts 組件支持的屬性包括:

  • option (required): ECharts 的配置項,必填項。
  • notMerge: 是否不與之前設置的 option 進行合併,默認為 false。
  • lazyUpdate: 是否在 setOption 後不立即更新圖表,而是等待調用更新方法時再更新,默認為 false。
  • showLoading: 是否顯示加載動畫,默認為 false。
  • loadingOption: 加載動畫的配置項。
  • loadingProgress: 加載動畫的進度。
  • onChartReady: 圖表渲染完成時的回調函數。
  • renderer: 圖表的渲染器,支持 canvas 和 svg 兩種方式,默認為 canvas。
  • dispose: 是否在組件 unmount 時銷毀圖表實例,默認為 true。
  • style: 組件的樣式。
  • className: 組件的類名。
  • opts: ECharts 實例的配置項。
  • echarts: echarts 的引用,通常使用 import echarts from ‘echarts’ 導入。

2. 組件實例的方法

通過使用 refs 來獲取組件實例,從而可調用組件實例的方法來對圖表進行操作。ReactECharts 組件實例支持的方法包括:

  • getEchartsInstance(): 獲取 ECharts 實例,用於調用 ECharts 原生方法。
  • getDom(): 獲取 ECharts 實例所在的 DOM 元素。
  • getOption(): 獲取圖表配置項。
  • setOption(option: object, notMerge?: boolean, lazyUpdate?: boolean): 設置圖表配置項。
  • clear(): 清空圖表內容。
  • showLoading(type?: string, opts?: object): 顯示加載動畫,type 為加載動畫類型,默認為 default。
  • hideLoading(): 隱藏加載動畫。
  • resize(): 重置圖表大小。
  • dispatchAction(option: object): 觸發某個行為,例如切換折線圖的顯示與隱藏操作。

四、使用示例

1. 柱狀圖

{`import ReactECharts from 'echarts-for-react';
import echarts from 'echarts';

function BarChart() {
  const option = {
    title: {
      text: '柱狀圖',
    },
    tooltip: {},
    xAxis: {
      data: ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子'],
    },
    yAxis: {},
    series: [{
      name: '銷量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20],
    }],
  };

  return (
    
  );
}`}

2. 折線圖

{`import ReactECharts from 'echarts-for-react';
import echarts from 'echarts';

function LineChart() {
  const option = {
    title: {
      text: '折線圖',
    },
    tooltip: {
      trigger: 'axis',
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
    },
    yAxis: {
      type: 'value',
    },
    series: [{
      name: '郵件營銷',
      type: 'line',
      stack: '總量',
      data: [120, 132, 101, 134, 90, 230, 210],
    }, {
      name: '聯盟廣告',
      type: 'line',
      stack: '總量',
      data: [220, 182, 191, 234, 290, 330, 310],
    }, {
      name: '視頻廣告',
      type: 'line',
      stack: '總量',
      data: [150, 232, 201, 154, 190, 330, 410],
    }, {
      name: '直接訪問',
      type: 'line',
      stack: '總量',
      data: [320, 332, 301, 334, 390, 330, 320],
    }, {
      name: '搜索引擎',
      type: 'line',
      stack: '總量',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
    }],
  };

  return (
    
  );
}`}

3. 餅圖

{`import ReactECharts from 'echarts-for-react';
import echarts from 'echarts';

function PieChart() {
  const option = {
    title: {
      text: '餅圖',
    },
    tooltip: {},
    series: [{
      name: '訪問來源',
      type: 'pie',
      radius: '50%',
      data: [
        {value: 335, name: '直接訪問'},
        {value: 310, name: '郵件營銷'},
        {value: 234, name: '聯盟廣告'},
        {value: 135, name: '視頻廣告'},
        {value: 1548, name: '搜索引擎'},
      ],
    }],
  };

  return (
    
  );
}`}

4. 地圖

{`import ReactECharts from 'echarts-for-react';
import echarts from 'echarts/dist/echarts'; // 引入中國地圖的配置文件
import 'echarts/map/js/china';

function MapChart() {
  const option = {
    visualMap: {
      min: 0,
      max: 1000,
      left: 'left',
      top: 'bottom',
      calculable: true,
      inRange: {
        color: ['#e0ffff', '#006edd'],
      },
    },
    series: [
      {
        type: 'map',
        mapType: 'china',
        roam: false, // 禁止拖拽和縮放地圖
        label: {
          normal: {
            show: true,
          },
          emphasis: {
            show: true,
          },
        },
        data: [
          { name: '北京', value: 110 },
          { name: '天津', value: 100 },
          { name: '上海', value: 130 },
          { name: '重慶', value: 120 },
          { name: '河北', value: 50 },
          { name: '河南', value: 20 },
          { name: '雲南', value: 170 },
          { name: '遼寧', value: 70 },
          { name: '黑龍江', value: 80 },
          { name: '湖南', value: 180 },
          { name: '安徽', value: 90 },
          { name: '山東', value: 140 },
          { name: '新疆', value: 10 },
          { name: '江蘇', value: 110 },
          { name: '浙江', value: 200 },
          { name: '江西', value: 70 },
          { name: '湖北', value: 230 },
          { name: '廣西', value: 80 },
          { name: '甘肅', value: 20 },
          { name: '山西', value: 40 },
          { name: '內蒙古', value: 70 },
          { name: '陝西', value: 80 },
          { name: '吉林', value: 50 },
          { name: '福建', value: 100 },
          { name: '貴州', value: 60 },
          { name: '廣東', value: 300 },
          { name: '青海', value: 10 },
          { name: '西藏', value: 1 },
          { name: '四川', value: 200 },
          { name: '寧夏', value: 20 },
          { name: '海南', value: 10 },
          { name: '台灣', value: 3 },
          { name: '香港', value: 7 },
          { name: '澳門', value: 7 },
        ],
      },
    ],
  };

  return (
    
  );
}`}

原創文章,作者:ZDQB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/142766.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZDQB的頭像ZDQB
上一篇 2024-10-12 09:45
下一篇 2024-10-12 09:45

相關推薦

  • Python for循環求1到100的積

    Python中的for循環可以方便地遍歷列表、元組、字典等數據類型。本文將以Python for循環求1到100的積為中心,從多個方面進行詳細闡述。 一、for循環語法 Pytho…

    編程 2025-04-29
  • @uiw/react-amap介紹

    本文將詳細闡述@uiw/react-amap的使用方法和參數配置,以及如何在React應用中集成高德地圖組件。 一、@uiw/react-amap簡介 @uiw/react-ama…

    編程 2025-04-29
  • Python使用for循環打印99乘法表用法介紹

    本文介紹如何使用python的for循環語句來打印99乘法表,我們將從需要的基本知識、代碼示例以及一些加強版來詳細講解。 一、基礎知識 在學習如何使用for循環打印99乘法表之前,…

    編程 2025-04-29
  • Echarts 地圖 Label 增加背景圖

    本文將從多個方面對 Echarts 地圖 Label 增加背景圖進行詳細的闡述。 一、背景圖的作用 為 Echarts 地圖添加背景圖可以使 Label 更加直觀、美觀,提升視覺效…

    編程 2025-04-29
  • Python for循環優化

    本文將介紹如何對Python中的for循環進行優化。 一、使用range()代替直接迭代 Python中的for循環本質上是一種迭代操作,可以對列表、元組、集合等數據結構進行遍歷。…

    編程 2025-04-28
  • in和for的用法區別

    對於Python編程中的in和for關鍵詞,我們在實際編碼中很容易混淆。本文將從多個方面詳細闡述它們的用法區別,幫助讀者正確使用in和for。 一、in關鍵詞 in是用來判斷一個元…

    編程 2025-04-28
  • Webrtc音視頻開發React+Flutter+Go實戰PDF

    本文將從多個方面介紹如何使用React、Flutter和Go來進行Webrtc音視頻開發,並提供相應的代碼示例。 一、Webrtc音視頻開發介紹 Webrtc是Google開發的一…

    編程 2025-04-27
  • Python利用for循環實現三角形的繪製

    Python是一種高級編程語言,也是非常適合初學者學習的一種編程語言。本文將詳細介紹如何利用Python中的for循環來實現三角形的繪製。通過本文的學習,大家可以對Python的基…

    編程 2025-04-27
  • Python遞減for循環代碼的實現

    Python中的for循環可以通過遞減實現,遞減for循環通常用於倒序遍歷列表、字符串等數據結構。在本文中,我們將從多個方面對Python遞減for循環代碼做詳細的闡述,包括實現方…

    編程 2025-04-27
  • Python for循環items用法介紹

    Python是一種高級語言,具有簡單易學,代碼量少,語法清晰的特點。其中for循環是Python中最常見的循環語句之一,而for循環中的items更是讓我們又愛又恨的語法。下面將從…

    編程 2025-04-27

發表回復

登錄後才能評論