Echarts 視覚化テクノロジーの概要

視覚化パネルの紹介

データ視覚化の現在のトレンドに対応して、多くの企業がさまざまなシナリオ (マーケティング データ、生産データ、ユーザー データ) でデータを使用する必要があるようになりました。ビジュアル チャートを使用してデータを表示および反映することで、データをより直感的に、データの特徴がより顕著になります。

01 - テクノロジーの活用

このプロジェクトを完了するには、次の知識が必要です。

  • div+cssレイアウト
  • フレックスレイアウト
  • 以下
  • ネイティブjs + jqueryの使用
  • レム適応
  • eチャートの基本

02- 症例適応計画

  • デザイン案は1920pxです

    1. flexible.jsは画面を24等分に分割します

    2. cssrem プラグインの基本値は 80px です

      プラグイン - 設定ボタン - 拡張設定の設定 - ルート フォント サイズ。

      ただし、vscode ソフトウェアを再起動して確実に有効にすることを忘れないでください。

03-基本設定

  • body は背景画像を設定します。スケールは 100%、行の高さは 1.15 です。
  • CSSの初期化

04ヘッダーレイアウト

  • 高さは100ピクセルです
  • コンテナ内に表示される背景画像
  • 100% に拡大縮小
  • h1 タイトル部分白 38 ピクセル中央表示行の高さは 80 ピクセル
  • 時間モジュール showTime は右側を 30 ピクセル、行の高さは 75 ピクセル、テキストの色は rgba(255, 255, 255, 0.7)、テキスト サイズは 20 ピクセルです。
// 格式: 当前时间:2020年3月17-0时54分14秒
<script>
            var t = null;
            t = setTimeout(time, 1000);//開始运行
            function time() {
    
    
                clearTimeout(t);//清除定时器
                dt = new Date();
                var y = dt.getFullYear();
                var mt = dt.getMonth() + 1;
                var day = dt.getDate();
                var h = dt.getHours();//获取时
                var m = dt.getMinutes();//获取分
                var s = dt.getSeconds();//获取秒
                document.querySelector(".showTime").innerHTML = '当前时间:' + y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒";
                t = setTimeout(time, 1000); //设定定时器,循环运行     
            }
 </script>
  • ヘッダー部分のCSSスタイル
header {
    
    
  position: relative;
  height: 1.25rem;
  background: url(../images/head_bg.png) no-repeat top center;
  background-size: 100% 100%;
  h1 {
    
    
    font-size: 0.475rem;
    color: #fff;
    text-align: center;
    line-height: 1rem;
  }
  .showTime {
    
    
    position: absolute;
    top: 0;
    right: 0.375rem;
    line-height: 0.9375rem;
    font-size: 0.25rem;
    color: rgba(255, 255, 255, 0.7);
  }
}

05-メインボックスメインモジュール

  • 左右に10pxのパディングが必要です

  • カラム カラムコンテナ、3 つのカラムに分割、比率 3:5:3

CSS スタイル:

.mainbox {
    
    
  padding: 0.125rem 0.125rem 0;
  display: flex;
  .column {
    
    
    flex: 3;
  }
  &:nth-child(2) {
    
    
    flex: 5;
  }
}

06-パブリックパネルモジュールパネル

  • 高さは310ピクセルです
  • 1px ソリッド rgba(25, 186, 139, 0.17) 1px の境界線
  • line.jpg の背景画像があります
  • パディングは上部が 0、下部が 15 ピクセル、下部が 40 ピクセルです。
  • 下余白は15pxです
  • 前後のパネル ボックスを使用して、上 2 つの角を 10 ピクセル、線を 2 ピクセルの実線にします #02a6b5
  • 前後に新しいボックスを追加して、下の 2 隅の幅と高さを 10px にします。
.panel {
    
    
  position: relative;
  height: 3.875rem;
  border: 1px solid rgba(25, 186, 139, 0.17);
  background: url(../images/line\(1\).png);
  padding: 0 0.1875rem 0.5rem;
  margin-bottom: 0.1875rem;
  &::before {
    
    
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    width: 10px;
    height: 10px;
    border-top: 2px solid #02a6b5;
    border-left: 2px solid #02a6b5;
  }
  &::after {
    
    
    position: absolute;
    top: 0;
    right: 0;
    content: "";
    width: 10px;
    height: 10px;
    border-top: 2px solid #02a6b5;
    border-right: 2px solid #02a6b5;
  }
  .panel-footer {
    
    
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    &::before {
    
    
      position: absolute;
      bottom: 0;
      left: 0;
      content: "";
      width: 10px;
      height: 10px;
      border-bottom: 2px solid #02a6b5;
      border-left: 2px solid #02a6b5;
    }
    &::after {
    
    
      position: absolute;
      bottom: 0;
      right: 0;
      content: "";
      width: 10px;
      height: 10px;
      border-bottom: 2px solid #02a6b5;
      border-right: 2px solid #02a6b5;
    }
  }
}

07- 縦棒グラフ棒モジュール (レイアウト)

  • ヘッダーモジュールのh2の高さは48pxです。テキストの色は白です。テキストのサイズは20pxです。

  • アイコン コンテンツ モジュール チャートの高さ 240px

  • 上記はパネルのパブリック スタイル部分として使用できます

  h2 {
    
    
    height: 0.6rem;
    line-height: 0.6rem;
    text-align: center;
    color: #fff;
    font-size: 20px;
    font-weight: 400;
  }
  .chart {
    
    
    height: 3rem;
    background-color: pink;
  }

08-中間レイアウト

  • 上記はデジタルモジュールではありません
  • 以下はマップマップモジュールです
  1. 数値モジュール no の背景色は rgba(101, 132, 226, 0.1) で、15 ピクセルのパディングがあります。
  2. 中央の列には左に 15 ピクセル、右に 10 ピクセルのマージンがあることに注意してください。
  3. no モジュールの上位および下位の区分は、上部に番号 (no-hd) があり、その下に関連テキストの説明 (no-bd) が表示されます。
  4. HD なしのデジタル ブロックには境界線 1px ソリッド rgba(25、186、139、0.17) があります。
  5. no-HD デジタル モジュールは 2 つの小さなライブラリに分割されており、各小さなライブラリの高さは 80 ピクセル、テキスト サイズは 70 ピクセル、色は #ffeb7b、フォントはアイコン フォントの electricFont です。
  6. no-hd 前後に使用して 2 つの小さな角、境界線 2px 実線 #02a6b5 幅 30px 高さ 10px
  7. 後の最初の小さなliに小さな縦線を与えることができ、背景色はrgba(255, 255, 255, 0.2)、高さは50%上位25%です。
  8. no-bd には小さな li が 2 つあり、高さは 40 ピクセル、テキストの色は rgba(255, 255, 255, 0.7)、テキストのサイズは 18 ピクセル、上部のパディングは 10 ピクセルです。
/* 声明字体*/
@font-face {
    
    
  font-family: electronicFont;
  src: url(../font/DS-DIGIT.TTF);
}

マップモジュールの制作:

  1. マップ モジュールの高さは 810px で、4 つのボックス チャートが含まれており、チャート モジュールの球ボックスを回転 1 回転 2 に配置します。
  2. 球体画像モジュール map1 のサイズは 518px です。100% に拡大縮小し、最も中央の透明度に配置する必要があるため、背景画像を追加する必要があります。3
  3. 背景画像を追加するには、100% に拡大縮小し、中央の透明度に配置する必要があるため、サイズ 643 ピクセルのマップ 2 を回転させます。6 回転アニメーションを実行し、Z インデックスを使用して球を押します。
  4. 回転 2 マップ 3 のサイズは 566 ピクセルです。中心に配置するには 100% 拡大縮小する必要があるため、背景画像を追加する必要があります。回転アニメーションは反時計回りであることに注意してください。
 <div class="no">
                <div class="no-hd">
                    <ul>
                        <li>125811</li>
                        <li>104563</li>
                    </ul>
                </div>
                <div class="no-bd">
                    <ul>
                        <li>前端需求人数</li>
                        <li>市场供应人数</li>
                    </ul>
                </div>
            </div>
            <div class="map">
                <div class="chart"></div>
                <div class="map1"></div>
                <div class="map2"></div>
                <div class="map3"></div>
            </div>

中間スタイル

/* 声明字体*/
@font-face {
    
    
  font-family: electronicFont;
  src: url(../font/DS-DIGIT.TTF);
}
.no {
    
    
  background: rgba(101, 132, 226, 0.1);
  padding: 0.1875rem;
  .no-hd {
    
    
    position: relative;
    border: 1px solid rgba(25, 186, 139, 0.17);
    &::before {
    
    
      content: "";
      position: absolute;
      width: 30px;
      height: 10px;
      border-top: 2px solid #02a6b5;
      border-left: 2px solid #02a6b5;
      top: 0;
      left: 0;
    }
    &::after {
    
    
      content: "";
      position: absolute;
      width: 30px;
      height: 10px;
      border-bottom: 2px solid #02a6b5;
      border-right: 2px solid #02a6b5;
      right: 0;
      bottom: 0;
    }
    ul {
    
    
      display: flex;
      li {
    
    
        position: relative;
        flex: 1;
        text-align: center;
        height: 1rem;
        line-height: 1rem;
        font-size: 0.875rem;
        color: #ffeb7b;
        padding: 0.05rem 0;
        font-family: electronicFont;
        font-weight: bold;
        &:first-child::after {
    
    
          content: "";
          position: absolute;
          height: 50%;
          width: 1px;
          background: rgba(255, 255, 255, 0.2);
          right: 0;
          top: 25%;
        }
      }
    }
  }
  .no-bd ul {
    
    
    display: flex;
    li {
    
    
      flex: 1;
      height: 0.5rem;
      line-height: 0.5rem;
      text-align: center;
      font-size: 0.225rem;
      color: rgba(255, 255, 255, 0.7);
      padding-top: 0.125rem;
    }
  }
}
.map {
    
    
  position: relative;
  height: 10.125rem;
  .chart {
    
    
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    height: 10.125rem;
    width: 100%;
  }
  .map1,
  .map2,
  .map3 {
    
    
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6.475rem;
    height: 6.475rem;
    background: url(../images/map.png) no-repeat;
    background-size: 100% 100%;
    opacity: 0.3;
  }
  .map2 {
    
    
    width: 8.0375rem;
    height: 8.0375rem;
    background-image: url(../images/lbx.png);
    opacity: 0.6;
    animation: rotate 15s linear infinite;
    z-index: 2;
  }
  .map3 {
    
    
    width: 7.075rem;
    height: 7.075rem;
    background-image: url(../images/jt.png);
    animation: rotate1 10s linear infinite;
  }

  @keyframes rotate {
    
    
    from {
    
    
      transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
    
    
      transform: translate(-50%, -50%) rotate(360deg);
    }
  }
  @keyframes rotate1 {
    
    
    from {
    
    
      transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
    
    
      transform: translate(-50%, -50%) rotate(-360deg);
    }
  }
}

09-Echarts-はじめに

一般的なデータ視覚化ライブラリ:

  • D3.js は現在、Web 上で最も評価の高い Javascript 視覚化ツール ライブラリです (使い始めるのが難しい)
  • ECharts.js Baidu が作成したオープンソースの Javascript データ視覚化ライブラリ
  • Highcharts.js 外国のフロントエンド データ視覚化ライブラリ、非営利で無料、多くの大きな外国企業で使用されています
  • AntV Ant Financialの新世代データ可視化ソリューションなど
  • Highcharts と Echarts は Office と WPS の関係に似ています

ECharts は、JavaScript を使用して実装されたオープン ソースの視覚化ライブラリであり、PC およびモバイル デバイス上でスムーズに実行でき、最新のブラウザ (IE8/9/10/11、Chrome、Firefox、Safari など) と互換性があり、ベクトル グラフィックスに依存しています。一番下ZRenderライブラリは、直感的でインタラクティブで高度にカスタマイズ可能なデータ視覚化チャートを提供します。

言語:

公式サイトアドレス: https: //www.echartsjs.com/zh/index.html

10-Echarts-Experience

公式チュートリアル: [5 分で ECharts を始めましょう](https://www.echartsjs.com/zh/tutorial.html#5 分で ECharts を始めましょう)

  • echarts をダウンロード https://github.com/apache/incubator-echarts/tree/4.5.0

使用手順:

  1. echarts プラグイン ファイルを HTML ページに導入します。
  2. サイズのあるD​​OMコンテナを用意する
<div id="main" style="width: 600px;height:400px;"></div>
  1. echarts インスタンス オブジェクトを初期化する
var myChart = echarts.init(document.getElementById('main'));
  1. 設定項目とデータの指定(オプション)
var option = {
    
    
    xAxis: {
    
    
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
    
    
        type: 'value'
    },
    series: [{
    
    
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'line'
    }]
};
  1. 構成アイテムを echarts インスタンス オブジェクトに設定します
myChart.setOption(option);

11-Echarts-基本構成

これは、学生に次の構成の各モジュールの主な機能を理解させるためです。

理解する必要がある主な構成は次のとおりです。series xAxis yAxis grid tooltip title legend color

  • シリーズ

    • シリーズ一覧。各シリーズは、次の方法で独自のチャート タイプtypeを決定します
    • Vernacular: アイコン データ。アイコンの種類を指定します。複数のグラフを重ねることができます。
  • xAxis: 直交座標系グリッドの x 軸

    • boundaryGap: 座標軸の両側のブランキング戦略は true です。このとき、スケールは分割線としてのみ使用され、ラベルとデータ ポイントは 2 つのスケール間のバンドの中央に配置されます。
  • yAxis: 直交座標系グリッドの y 軸

  • Grid: デカルト座標系の描画グリッド。

  • title: タイトルコンポーネント

  • ツールチップ: プロンプト ボックス コンポーネント

  • 凡例: 凡例コンポーネント

  • カラー:パレットカラーリスト

    データスタッキングでは、同じカテゴリ軸上の系列が同じ値で構成されたstack後、次の系列の値が前の系列の値に加算されます。

option = {
    
    
    // color设置我们线条的颜色 注意后面是个数组
    color: ['pink', 'red', 'green', 'skyblue'],
    // 设置图表的标题
    title: {
    
    
        text: '折线图堆叠123'
    },
    // 图表的提示框组件 
    tooltip: {
    
    
        // 触发方式
        trigger: 'axis'
    },
    // 图例组件
    legend: {
    
    
       // series里面有了 name值则 legend里面的data可以删掉
    },
    // 网格配置  grid可以控制线形图 柱状图 图表大小
    grid: {
    
    
        left: '3%',
        right: '4%',
        bottom: '3%',
        // 是否显示刻度标签 如果是true 就显示 否则反之
        containLabel: true
    },
    // 工具箱组件  可以另存为图片等功能
    toolbox: {
    
    
        feature: {
    
    
            saveAsImage: {
    
    }
        }
    },
    // 设置x轴的相关配置
    xAxis: {
    
    
        type: 'category',
        // 是否让我们的线条和坐标轴有缝隙
        boundaryGap: false,
        data: ['星期一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
     // 设置y轴的相关配置
    yAxis: {
    
    
        type: 'value'
    },
    // 系列图表配置 它决定着显示那种类型的图表
    series: [
        {
    
    
            name: '邮件营销',
            type: 'line',
           
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
    
    
            name: '联盟广告',
            type: 'line',

            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
    
    
            name: '视频广告',
            type: 'line',
          
            data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
    
    
            name: '直接访问',
            type: 'line',
          
            data: [320, 332, 301, 334, 390, 330, 320]
        }
    ]
};

12- ヒストグラム チャート (2 段階)

  • 公式ウェブサイトで同様の例を見つけて適切に分析し、HTML ページに導入します。
  • ニーズに応じてグラフをカスタマイズします
  1. HTMLページに導入されました
// 柱状图1模块
(function() {
    
    
  // 实例化对象
  let myChart = echarts.init(document.querySelector(".bar .chart"));
  // 指定配置和数据
  let option = {
    
    
    color: ["#3398DB"],
    tooltip: {
    
    
      trigger: "axis",
      axisPointer: {
    
    
        // 坐标轴指示器,坐标轴触发有效
        type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
      }
    },
    grid: {
    
    
      left: "3%",
      right: "4%",
      bottom: "3%",
      containLabel: true
    },
    xAxis: [
      {
    
    
        type: "category",
        data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
        axisTick: {
    
    
          alignWithLabel: true
        }
      }
    ],
    yAxis: [
      {
    
    
        type: "value"
      }
    ],
    series: [
      {
    
    
        name: "直接访问",
        type: "bar",
        barWidth: "60%",
        data: [10, 52, 200, 334, 390, 330, 220]
      }
    ]
  };

  // 把配置给实例对象
  myChart.setOption(option);
})();
  1. ニーズに応じてカスタマイズ

    • チャートの列の色を変更します #2f89cf

    • グラフのサイズを上から 10 ピクセル、下から 4% グリッドに変更して、ヒストグラムのサイズを決定します。

    color: ["#2f89cf"],
    grid: {
      left: "0%",
      top: "10px",
      right: "0%",
      bottom: "4%",
      containLabel: true
    },
    
    • X軸関連の設定 xAxis
      • テキストの色は rgba(255,255,255,.6) に設定され、フォント サイズは 12px です。
      • X軸のスタイルが表示されない
    // 设置x轴标签文字样式
    

// x 軸のテキストの色とサイズ
axisLabel: { color: "rgba(255,255,255,.6)", fontSize: "12" }, // x 軸のスタイルは表示されませんaxisLine: { show: false // 個別の線種を設定したい場合// lineStyle: { // color: “rgba(255,255,255,.1)”, // width: 1, // type: “solid” } }













- Y 轴相关定制
  - 文本颜色设置为   rgba(255,255,255,.6)   字体大小为 12px
  - Y 轴线条样式 更改为  1像素的  rgba(255,255,255,.1) 边框
  - 分隔线的颜色修饰为  1像素的  rgba(255,255,255,.1)   

~~~JavaScript
// y 轴文字标签样式
axisLabel: {
      color: "rgba(255,255,255,.6)",
       fontSize: "12"
},
 // y轴线条样式
 axisLine: {
      lineStyle: {
         color: "rgba(255,255,255,.1)",
         // width: 1,
         // type: "solid"
      }
5232},
 // y 轴分隔线样式
splitLine: {
    lineStyle: {
       color: "rgba(255,255,255,.1)"
     }
}
  • 柱の形状を丸く修正し、柱幅シリーズに設定します
series: [
      {
        name: "直接访问",
        type: "bar",
        // 修改柱子宽度
        barWidth: "35%",
        data: [10, 52, 200, 334, 390, 330, 220],
        itemStyle: {
          // 修改柱子圆角
          barBorderRadius: 5
        }
      }
    ]
  };
  • 対応するデータを置き換える
// x轴中更换data数据
 data: [ "旅游行业","教育培训", "游戏行业", "医疗行业", "电商行业", "社交行业", "金融行业" ],
// series 更换数据
 data: [200, 300, 300, 900, 1500, 1200, 600]
  • チャートを画面に適応させる
  window.addEventListener("resize", function() {
    
    
    myChart.resize();
  });

13-ヒストグラム 2 のカスタマイズ

  • 公式ウェブサイトで同様の例を見つけて適切に分析し、HTML ページに導入します。
  • ニーズに応じてグラフをカスタマイズします

要件 1: グラフィック サイズ グリッドを変更する

  // 图标位置
    grid: {
    
    
      top: "10%",
      left: "22%",
      bottom: "10%"
    },

要件 2: X 軸を表示しない

   xAxis: {
    
    
      show: false
    },

要件 3: Y 軸関連のカスタマイズ

  • Y 軸と関連する目盛を表示しません。
//不显示y轴线条
axisLine: {
    
    
    show: false
        },
// 不显示刻度
axisTick: {
    
    
   show: false
},
  • Y軸のテキストの色は白に設定されます
   axisLabel: {
    
    
          color: "#fff"
   },

要件 4: 列関連のスタイル (バー) の最初のグループを変更する

name: "条",
// 柱子之间的距离
barCategoryGap: 50,
//柱子的宽度
barWidth: 10,
// 柱子设为圆角
itemStyle: {
    
    
    normal: {
    
    
      barBorderRadius: 20,       
    }
},
  • 最初の列グループにパーセンテージ表示データを設定します。
// 图形上的文本标签
label: {
    
    
    normal: {
    
    
         show: true,
         // 图形内显示
         position: "inside",
         // 文字的显示格式
         formatter: "{c}%"
     }
},
  • 最初の列グループを異なる色に設定します
// 声明颜色数组
var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
// 2. 给 itemStyle  里面的color 属性设置一个 返回值函数
  itemStyle: {
    
    
          normal: {
    
    
            barBorderRadius: 20,  
            // params 传进来的是柱子对象
            console.log(params);
            // dataIndex 是当前柱子的索引号
            return myColor[params.dataIndex];
          }
         
},

要件 5: 2 番目の列グループ (フレーム形状) の関連構成を変更する

  	    name: "框",
        type: "bar",
        barCategoryGap: 50,
        barWidth: 15,
        itemStyle: {
    
    
            color: "none",
            borderColor: "#00c1de",
            borderWidth: 3,
            barBorderRadius: 15
        },
        data: [19325, 23438, 31000, 121594, 134141, 681807]
      }

要件 6: 2 番目のデータセットを Y 軸に追加する

yAxis: [
      {
    
    
      type: "category",
      data: ["印尼", "美国", "印度", "中国", "世界人口(万)"],
      // 不显示y轴的线
      axisLine: {
    
    
        show: false
      },
      // 不显示刻度
      axisTick: {
    
    
        show: false
      },
      // 把刻度标签里面的文字颜色设置为白色
      axisLabel: {
    
    
        color: "#fff"
      }
    },
      {
    
    
        show: true,
        data: [702, 350, 610, 793, 664],
           // 不显示y轴的线
      axisLine: {
    
    
        show: false
      },
      // 不显示刻度
      axisTick: {
    
    
        show: false
      },
        axisLabel: {
    
    
          textStyle: {
    
    
            fontSize: 12,
            color: "#fff"
          }
        }
      }
    ],

要件 7: 2 セットの列スタッキングを設定し、データを置換する

// 给series  第一个对象里面的 添加 
yAxisIndex: 0,
// 给series  第二个对象里面的 添加 
yAxisIndex: 1,
// series 第一个对象里面的data
data: [70, 34, 60, 78, 69],
// series 第二个对象里面的data
data: [100, 100, 100, 100, 100],
// y轴更换第一个对象更换data数据
data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
// y轴更换第二个对象更换data数据
data:[702, 350, 610, 793, 664],

完全なコード:

// 柱状图2
(function() {
    
    
  var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
  // 1. 实例化对象
  var myChart = echarts.init(document.querySelector(".bar2 .chart"));
  // 2. 指定配置和数据
  var option = {
    
    
    grid: {
    
    
      top: "10%",
      left: "22%",
      bottom: "10%"
      // containLabel: true
    },
    // 不显示x轴的相关信息
    xAxis: {
    
    
      show: false
    },
    yAxis: [
      {
    
    
        type: "category",
        inverse: true,
        data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
        // 不显示y轴的线
        axisLine: {
    
    
          show: false
        },
        // 不显示刻度
        axisTick: {
    
    
          show: false
        },
        // 把刻度标签里面的文字颜色设置为白色
        axisLabel: {
    
    
          color: "#fff"
        }
      },
      {
    
    
        data: [702, 350, 610, 793, 664],
        inverse: true,
        // 不显示y轴的线
        axisLine: {
    
    
          show: false
        },
        // 不显示刻度
        axisTick: {
    
    
          show: false
        },
        // 把刻度标签里面的文字颜色设置为白色
        axisLabel: {
    
    
          color: "#fff"
        }
      }
    ],
    series: [
      {
    
    
        name: "条",
        type: "bar",
        data: [70, 34, 60, 78, 69],
        yAxisIndex: 0,
        // 修改第一组柱子的圆角
        itemStyle: {
    
    
          barBorderRadius: 20,
          // 此时的color 可以修改柱子的颜色
          color: function(params) {
    
    
            // params 传进来的是柱子对象
            console.log(params);
            // dataIndex 是当前柱子的索引号
            return myColor[params.dataIndex];
          }
        },
        // 柱子之间的距离
        barCategoryGap: 50,
        //柱子的宽度
        barWidth: 10,
        // 显示柱子内的文字
        label: {
    
    
          show: true,
          position: "inside",
          // {c} 会自动的解析为 数据  data里面的数据
          formatter: "{c}%"
        }
      },
      {
    
    
        name: "框",
        type: "bar",
        barCategoryGap: 50,
        barWidth: 15,
        yAxisIndex: 1,
        data: [100, 100, 100, 100, 100],
        itemStyle: {
    
    
          color: "none",
          borderColor: "#00c1de",
          borderWidth: 3,
          barBorderRadius: 15
        }
      }
    ]
  };

  // 3. 把配置给实例对象
  myChart.setOption(option);
})();

14- 折れ線グラフ 1 人事異動モジュールの作成

  • 公式ウェブサイトで同様の例を見つけて適切に分析し、HTML ページに導入します。
  • ニーズに応じてグラフをカスタマイズします

要件 1: 折れ線グラフのサイズを変更し、表示枠の色: #012f4a を設定し、目盛りラベルを表示します。

    // 设置网格样式
    grid: {
    
     
      top: '20%',
      left: '3%',
      right: '4%',
      bottom: '3%',
      show: true,// 显示边框
      borderColor: '#012f4a',// 边框颜色
      containLabel: true // 包含刻度文字在内
    },

要件 2: 凡例コンポーネントのテキストの色 #4c9bfd を変更し、右から右への距離を 10% にします。

 // 图例组件
    legend: {
    
    
      textStyle: {
    
    
        color: '#4c9bfd' // 图例文字颜色
      },
      right: '10%' // 距离右边10%
    },

要件 3: X 軸関連の構成

  • スケール除去
  • X軸スケールラベルのフォントカラー: #4c9bfd
  • X軸の軸の色を消す(将来的にはY軸の分割線を使用します)
  • 軸の両端には内部間隔境界ギャップは必要ありません
    xAxis: {
    
    
      type: 'category',
      data: ["周一", "周二"],
	  axisTick: {
    
    
         show: false // 去除刻度线
       },
       axisLabel: {
    
    
         color: '#4c9bfd' // 文本颜色
       },
       axisLine: {
    
    
         show: false // 去除轴线
       },
       boundaryGap: false  // 去除轴内间距
    },

要件 4: Y 軸のカスタマイズ

  • スケール除去
  • フォントの色: #4c9bfd
  • ディバイダーカラー: #012f4a
    yAxis: {
    
    
      type: 'value',
      axisTick: {
    
    
        show: false  // 去除刻度
      },
      axisLabel: {
    
    
        color: '#4c9bfd' // 文字颜色
      },
      splitLine: {
    
    
        lineStyle: {
    
    
          color: '#012f4a' // 分割线颜色
        }
      }
    },

要件 5: 2 つの折れ線グラフのカスタマイズ

  • それぞれの色: #00f2f1 #ed3f35
  • ポリラインをスムーズとして変更し、シリーズ データにスムーズを true に追加します。
    color: ['#00f2f1', '#ed3f35'],
	series: [{
    
    
      name:'新增粉丝',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: 'line',
      // 折线修饰为圆滑
      smooth: true,
      },{
    
    
      name:'新增游客',
      data: [100, 331, 200, 123, 233, 543, 400],
      type: 'line',
      smooth: true,
    }]

要件 6: 構成データ

// x轴的文字
xAxis: {
    
    
  type: 'category',
  data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
// 图标数据
    series: [{
    
    
      name:'新增粉丝',
      data:  [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
      type: 'line',
      smooth: true
    },{
    
    
      name:'新增游客',
      data: [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79],     
      type: 'line',
      smooth: true
      }
    }]

要件 7: 新しい要件は、2020 年と 2021 年のデータ変更をクリックします。

以下はバックグラウンドから送信されるデータです(ajaxによってリクエストされました)

 var yearData = [
      {
    
    
        year: '2020',  // 年份
        data: [  // 两个数组是因为有两条线
             [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
             [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
          ]
      },
      {
    
    
        year: '2021',  // 年份
        data: [  // 两个数组是因为有两条线
             [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38],
     		[143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34]
          ]
      }
     ];
  • タブバー切り替えイベント
  • 2020 ボタンをクリックして、シリーズの最初のオブジェクトのデータを 2020 オブジェクトの data[0] に置き換えます。
  • 2020 ボタンをクリックして、シリーズの 2 番目のオブジェクトのデータを 2020 オブジェクトのデータに置き換えます[1]
  • 2021ボタンも同様です

完全なコード:

// 折线图1模块制作
(function() {
    
    
  var yearData = [
    {
    
    
      year: "2020", // 年份
      data: [
        // 两个数组是因为有两条线
        [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
        [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
      ]
    },
    {
    
    
      year: "2021", // 年份
      data: [
        // 两个数组是因为有两条线
        [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38],
        [143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34]
      ]
    }
  ];
  // 1. 实例化对象
  var myChart = echarts.init(document.querySelector(".line .chart"));
  // 2.指定配置
  var option = {
    
    
    // 通过这个color修改两条线的颜色
    color: ["#00f2f1", "#ed3f35"],
    tooltip: {
    
    
      trigger: "axis"
    },
    legend: {
    
    
      // 如果series 对象有name 值,则 legend可以不用写data
      // 修改图例组件 文字颜色
      textStyle: {
    
    
        color: "#4c9bfd"
      },
      // 这个10% 必须加引号
      right: "10%"
    },
    grid: {
    
    
      top: "20%",
      left: "3%",
      right: "4%",
      bottom: "3%",
      show: true, // 显示边框
      borderColor: "#012f4a", // 边框颜色
      containLabel: true // 包含刻度文字在内
    },

    xAxis: {
    
    
      type: "category",
      boundaryGap: false,
      data: [
        "1月",
        "2月",
        "3月",
        "4月",
        "5月",
        "6月",
        "7月",
        "8月",
        "9月",
        "10月",
        "11月",
        "12月"
      ],
      axisTick: {
    
    
        show: false // 去除刻度线
      },
      axisLabel: {
    
    
        color: "#4c9bfd" // 文本颜色
      },
      axisLine: {
    
    
        show: false // 去除轴线
      }
    },
    yAxis: {
    
    
      type: "value",
      axisTick: {
    
    
        show: false // 去除刻度线
      },
      axisLabel: {
    
    
        color: "#4c9bfd" // 文本颜色
      },
      axisLine: {
    
    
        show: false // 去除轴线
      },
      splitLine: {
    
    
        lineStyle: {
    
    
          color: "#012f4a" // 分割线颜色
        }
      }
    },
    series: [
      {
    
    
        name: "新增粉丝",
        type: "line",
        // true 可以让我们的折线显示带有弧度
        smooth: true,
        data: yearData[0].data[0]
      },
      {
    
    
        name: "新增游客",
        type: "line",
        smooth: true,
        data: yearData[0].data[1]
      }
    ]
  };

  // 3. 把配置给实例对象
  myChart.setOption(option);
  // 4. 让图表跟随屏幕自动的去适应
  window.addEventListener("resize", function() {
    
    
    myChart.resize();
  });

  // 5.点击切换效果
  $(".line h2").on("click", "a", function() {
    
    
    // alert(1);
    // console.log($(this).index());
    // 点击 a 之后 根据当前a的索引号 找到对应的 yearData的相关对象
    // console.log(yearData[$(this).index()]);
    var obj = yearData[$(this).index()];
    option.series[0].data = obj.data[0];
    option.series[1].data = obj.data[1];
    // 需要重新渲染
    myChart.setOption(option);
  });
})();

15- 折れ線グラフ 2 再生ボリュームモジュールの生産

  • 公式ウェブサイトで同様の例を見つけて適切に分析し、HTML ページに導入します。
  • ニーズに応じてグラフをカスタマイズします

要件 1: 凡例コンポーネントのテキストの色を変更し、rgba(255,255,255,.5)、テキスト サイズを 12 にします。

 legend: {
    
    
      top: "0%",
      textStyle: {
    
    
        color: "rgba(255,255,255,.5)",
        fontSize: "12"
      }
},

要件 2: チャートのサイズを変更する

grid: {
    
    
      left: "10",
      top: "30",
      right: "10",
      bottom: "10",
      containLabel: true
    },

要件 3: X 軸関連の構成を変更する

  • テキストの色を rgba(255,255,255,.6) に変更し、テキストのサイズを 12 に変更します。
  • X 軸の色は rgba(255,255,255,.2) です。
     // 文本颜色为rgba(255,255,255,.6)  文字大小为 12
     axisLabel: {
    
    
          textStyle: {
    
    
            color: "rgba(255,255,255,.6)",
            fontSize: 12
          }
        },
         // x轴线的颜色为   rgba(255,255,255,.2)
        axisLine: {
    
    
          lineStyle: {
    
    
            color: "rgba(255,255,255,.2)"
          }
        },

要件 4: Y 軸の関連構成を変更する

        axisTick: {
    
     show: false },
        axisLine: {
    
    
          lineStyle: {
    
    
            color: "rgba(255,255,255,.1)"
          }
        },
        axisLabel: {
    
    
          textStyle: {
    
    
            color: "rgba(255,255,255,.6)",
            fontSize: 12
          }
        },
	   // 修改分割线的颜色
        splitLine: {
    
    
          lineStyle: {
    
    
            color: "rgba(255,255,255,.1)"
          }
        }
      

要件 5: 2 つのライン モジュールの構成を変更する (シリーズ内でカスタマイズされていることに注意してください)

       //第一条 线是圆滑
       smooth: true,
        // 单独修改线的样式
        lineStyle: {
    
    
            color: "#0184d5",
            width: 2 
        },
         // 填充区域
        areaStyle: {
    
    
              // 渐变色,只需要复制即可
            color: new echarts.graphic.LinearGradient(
              0,
              0,
              0,
              1,
              [
                {
    
    
                  offset: 0,
                  color: "rgba(1, 132, 213, 0.4)"   // 渐变色的起始颜色
                },
                {
    
    
                  offset: 0.8,
                  color: "rgba(1, 132, 213, 0.1)"   // 渐变线的结束颜色
                }
              ],
              false
            ),
            shadowColor: "rgba(0, 0, 0, 0.1)"
        },
        // 设置拐点 小圆点
        symbol: "circle",
        // 拐点大小
        symbolSize: 8,
        // 设置拐点颜色以及边框
       itemStyle: {
    
    
            color: "#0184d5",
            borderColor: "rgba(221, 220, 107, .1)",
            borderWidth: 12
        },
        // 开始不显示拐点, 鼠标经过显示
        showSymbol: false,
       name: "转发量",
        type: "line",
        smooth: true,
        lineStyle: {
    
    
          normal: {
    
    
            color: "#00d887",
            width: 2
          }
         },
         areaStyle: {
    
    
          normal: {
    
    
            color: new echarts.graphic.LinearGradient(
              0,
              0,
              0,
              1,
              [
                {
    
    
                  offset: 0,
                  color: "rgba(0, 216, 135, 0.4)"
                },
                {
    
    
                  offset: 0.8,
                  color: "rgba(0, 216, 135, 0.1)"
                }
              ],
              false
            ),
            shadowColor: "rgba(0, 0, 0, 0.1)"
          }
        },
        // 设置拐点 小圆点
        symbol: "circle",
        // 拐点大小
        symbolSize: 5,
        // 设置拐点颜色以及边框
         itemStyle: {
    
    
            color: "#00d887",
            borderColor: "rgba(221, 220, 107, .1)",
            borderWidth: 12
        },
        // 开始不显示拐点, 鼠标经过显示
        showSymbol: false,

要件 6: データを置き換える

// x轴更换数据
data: [ "01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","26","28","29","30"],
// series  第一个对象data数据
 data: [ 30, 40, 30, 40,30, 40, 30,60,20, 40, 30, 40, 30, 40,30, 40, 30,60,20, 40, 30, 40, 30, 40,30, 40, 20,60,50, 40],
// series  第二个对象data数据
 data: [ 130, 10, 20, 40,30, 40, 80,60,20, 40, 90, 40,20, 140,30, 40, 130,20,20, 40, 80, 70, 30, 40,30, 120, 20,99,50, 20],

16 円グラフ 1 年齢分布モジュールの製造

  • 公式ウェブサイトで同様の例を見つけて適切に分析し、HTML ページに導入します。
  • ニーズに応じてグラフをカスタマイズします

カスタム チャートの要件 1:

  • 凡例コンポーネントを下部中央に表示されるように変更します。
  • 各小さなアイコンの幅と高さが 10px に変更されます
  • 文字サイズは 12 色 rgba(255,255,255,.5)
 legend: {
    
    
      // 距离底部为0%
      bottom: "0%",
      // 小图标的宽度和高度
      itemWidth: 10,
      itemHeight: 10,
      data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'],
      // 修改图例组件的文字为 12px
      textStyle: {
    
    
        color: "rgba(255,255,255,.5)",
        fontSize: "12"
      }
 },

カスタマイズ要件 2:

  • 水平方向の中心と垂直方向の中心を変更する
  • 内側の円の半径と外側の円の半径を["40%"、"60%"]に変更します。ピンク先生の優しいリマインダーは、折れ線グラフのヒストグラムなどのデカルト座標系を使用してグリッドを変更します。グラフのサイズ、および円グラフは半径のサイズ変更を介して行われます
series: [
      {
    
    
        name: "年龄分布",
        type: "pie",
        // 设置饼形图在容器中的位置
        center: ["50%", "50%"],
        //  修改内圆半径和外圆半径为  百分比是相对于容器宽度来说的
        radius: ["40%", "60%"],
        // 不显示标签文字
        label: {
    
     show: false },
        // 不显示连接线
        labelLine: {
    
     show: false },
      }
    ]

カスタマイズ要件 3: データの置き換え

// legend 中的data  可省略
data: ["0岁以下", "20-29岁", "30-39岁", "40-49岁", "50岁以上"],
//  series 中的数据
 data: [
          {
    
     value: 1, name: "0岁以下" },
          {
    
     value: 4, name: "20-29岁" },
          {
    
     value: 2, name: "30-39岁" },
          {
    
     value: 2, name: "40-49岁" },
          {
    
     value: 1, name: "50岁以上" }
 ] ,

カスタマイズ要件 4: 色の変更

color: [
          "#065aab",
          "#066eab",
          "#0682ab",
          "#0696ab",
          "#06a0ab",
        ],
 // 4. 让图表跟随屏幕自动的去适应
  window.addEventListener("resize", function() {
    
    
    myChart.resize();
  });

17 円グラフ 2 地域配電モジュール生産 (ナイチンゲール ローズ チャート)

  • 公式ウェブサイトで同様の例を見つけて適切に分析し、HTML ページに導入します。
  • ニーズに応じてグラフをカスタマイズします

ステップ 2: 必要に応じてカスタマイズする

  • 要件 1: カラー設定
color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'],
  • 要件 2: 円グラフ (系列オブジェクト) のサイズを変更する
radius: ['10%', '70%'],
  • 要件 3: 円グラフの表示モードを半径モードに変更する
 roseType: "radius",
  • 要件 4: データ使用の置き換え (シリーズ オブジェクト内のデータ オブジェクト)
          {
    
     value: 20, name: '云南' },
          {
    
     value: 26, name: '北京' },
          {
    
     value: 24, name: '山东' },
          {
    
     value: 25, name: '河北' },
          {
    
     value: 20, name: '江苏' },
          {
    
     value: 25, name: '浙江' },
          {
    
     value: 30, name: '四川' },
          {
    
     value: 42, name: '湖北' }
  • 要件5:フォントは10ピクセル少し小さい(シリーズオブジェクトに設定)

    円グラフのテキスト ラベルは、円グラフのテキストの一部のスタイルを制御できます。ラベルオブジェクトの設定

series: [
      {
    
    
        name: "面积模式",
        type: "pie",
        radius: [30, 110],
        center: ["50%", "50%"],
        roseType: "radius",
        // 文本标签控制饼形图文字的相关样式, 注意它是一个对象
        label: {
    
    
          fontSize: 10
        },
      }
    ]
  };
  • 要件 6: ズーム時にガイド線が長くなりすぎないようにします。ガイドラインは少し短くなります (series オブジェクトの labelLine オブジェクトによって設定されます)。
    • 接続図 6px
    • リンクテキスト 8 ピクセル
+        // 文字调整
+        label:{
+          fontSize: 10
+        },
+        // 引导线调整
+        labelLine: {
+          // 连接扇形图线长
+          length: 6,
+          // 连接文字线长
+          length2: 8
+        } 
+      }
+    ],

  • 要件 6: ブラウザーがズームされると、グラフが自動的に適応します。
// 监听浏览器缩放,图表对象调用缩放resize函数
window.addEventListener("resize", function() {
    
    
    myChart.resize();
  });

18-Echarts-コミュニティの紹介

コミュニティは、アクティブな echart ユーザーがコミュニケーションし、カスタマイズされたチャートを投稿する場所です。

[外部リンク画像の転送に失敗しました。ソース サイトには盗難防止リンク メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-oThqj6mk-1639030724855)(docs/media/1576664444951.png)]

  • ここでは、jquery に基づいて開発されたプラグインと同等の、echart に基づいて高度にカスタマイズされたチャートをいくつか見つけることができます。echart に基づいて開発されたサードパーティのチャートは次のとおりです。

19-Echarts-mapの使用(拡張)

コミュニティの例を参照:https://gallery.echartsjs.com/editor.html?c=x0-ExSkZDM(航空機ルートの模擬)

実装手順:

  • まず、中国の地図を提供するために china.js の js ファイルをダウンロードする必要があります。
  • 2 つ目は、さらに多くのコードがあるため、インポートする新しい js ファイル myMap.js を作成します。
  • コミュニティが提供する構成を使用してください。

変更する必要があります:

  • タイトルコンポーネントを削除する
  • 背景色を削除する
  • マップの州の背景 #142957 areaColor を変更して変更を加えます
  • 地図はズームを1.2に設定すると拡大できます
    geo: {
    
    
      map: 'china',
      zoom: 1.2,
      label: {
    
    
        emphasis: {
    
    
          show: false
        }
      },
      roam: false,
      itemStyle: {
    
    
        normal: {
    
    
          areaColor: '#142957',
          borderColor: '#0692a4'
        },
        emphasis: {
    
    
          areaColor: '#0b1c2d'
        }
      }
    },

概要: この例は拡張されたケースです。今後、コミュニティでさらに多くのケースを読むことができます。

20- 最終制約スケーリング

/* 约束屏幕尺寸 */
@media screen and (max-width: 1024px) {
    
    
  html {
    
    
    font-size: 42px !important;
  }
}
@media screen and (min-width: 1920px) {
    
    
  html {
    
    
    font-size: 80px !important;
  }
}

おすすめ

転載: blog.csdn.net/qq_58432443/article/details/121820463