1. コーステクノロジースタック
プロジェクトの表示
このプロジェクトを完了するには、次の知識が必要です。
- div+cssレイアウト
- フレックスレイアウト
- 少ない
- ネイティブjs + jqueryを使用する
- レム適応
- eチャートの基本
オンライン体験(推奨)
https://yangyanyan.top/echarts-jobmap/
ソースコード
必ずスターを付けてください
https://gitee.com/yyy1203/echarts-jobmap.git
2.データ視覚化の概要
データだけを見ていると直感的には伝わりません。
3. プロジェクト手順の詳細説明
視覚化パネルの概要
データ視覚化の現在のトレンドに対応して、多くの企業がビジュアル チャートを使用してさまざまなシナリオ (マーケティング データ、生産データ、ユーザー データ) でデータを表示し、データをより直観的にし、データの特性をより際立たせる必要があります。
01-テクノロジーを活用する
このプロジェクトを完了するには、次の知識が必要です。
- div+cssレイアウト
- フレックスレイアウト
- 少ない
- ネイティブjs + jqueryを使用する
- レム適応
- eチャートの基本
02- 症例適応ソリューション
-
デザイン案は1920pxです
-
flexible.jsは画面を24等分に分割します
-
cssrem プラグインのベースライン値は 80px です
プラグイン - 設定ボタン - 拡張機能の設定 - ルート フォント サイズの設定。
ただし、vscode ソフトウェアを再起動して確実に有効にすることを忘れないでください
-
03-基本設定
- body は背景画像を設定し、ズームを 100%、行の高さを 1.15 に設定します。
- CSSの初期化
04ヘッダーレイアウト
- 高さは100pxです
- コンテナ内に表示される背景画像
- ズーム率は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-メインボックスメインモジュール
- 上と左に10ピクセルのパディングが必要です
- 列 列コンテナ。3:5:3 を占める 3 つの列に分割されています。
CSS スタイル:
.mainbox {
padding: 0.125rem 0.125rem 0;
display: flex;
.column {
flex: 3;
}
&:nth-child(2) {
flex: 5;
}
}
現在の効果
06-パブリックパネルモジュールパネル
- 高さは310pxです
- 1px ソリッド rgba(25, 186, 139, 0.17) ボーダー
- line.jpg 背景画像あり
- パディングは上部が 0、左右が 15px
、下部が 40px です。 - 下の余白は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;
}
}
}
- /ul>
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-ミドルレイアウト
- 上記はデジタルモジュールではありません
- 以下はマップマップモジュールです
- デジタル モジュール番号には背景色 rgba (101、132、226、0.1) があり、パディングは 15 ピクセルです。
- 中央の列の左側は 10 ピクセル、下部は 15 ピクセルの余白があることに注意してください。
- noモジュールは上下に分かれており、上部は数値(no-hd)、下部は関連テキスト記述(no-bd)です。
- HD なしデジタル モジュールの境界線は 1px ソリッド rgba(25、186、139、0.17) です。
- no-hd デジタル モジュールは 2 つの小さなリに分割されており、それぞれの小さなリの高さは 80 ピクセル、テキスト サイズは 70 ピクセル、色は #ffeb7b、フォントはアイコン フォントの electricFont です。
- no-hd は前後を使用して 2 つの小さな角を作成します。境界線は 2 ピクセルの実線 #02a6b5、幅は 30 ピクセル、高さは 10 ピクセルです。
- 最初の小さな li の後の小さな垂直線は幅 1 ピクセル、背景色は rgba (255, 255, 255, 0.2)、高さは 50%、上部 25% で十分です。
- no-bd にも小さな li が 2 つあり、高さは 40px、文字色は rgba(255, 255, 255, 0.7)、文字サイズは 18px、上マージンは 10px です。
/* 声明字体*/
@font-face {
font-family: electronicFont;
src: url(../font/DS-DIGIT.TTF);
}
マップモジュールの制作:
-
マップ モジュールの高さは 810px で、4 つのボックス チャートが含まれています。チャート モジュールを含む球ボックスは 1 回転し、2 回転します。
-
球体画像モジュールのマップ 1 のサイズは 518px です。背景画像は 100% スケールして透明度の中心に配置する必要があるため、追加する必要があります。3
-
1 つのマップを回転します 2. サイズは 643px です。100% 拡大縮小する必要があるため、背景画像を追加する必要があります。透明にするために中心に配置します。 6. z-index を使用して球を押したまま回転アニメーションにします。
-
回転 2 のマップ 3 のサイズは 566px です。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 は、直感的でインタラクティブで高度にカスタマイズ可能なデータ視覚化チャートを提供します。
言語:
- JSプラグインです
- パフォーマンスが良く、PC やモバイルデバイスでスムーズに動作します。
- 主要ブラウザに対応
- よく使用されるチャートが多数用意されており、カスタマイズできます。
公式サイトアドレス: 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
使用手順:
- echarts プラグイン ファイルを HTML ページに導入します。
- ある程度のサイズのDOMコンテナを用意する
<div id="main" style="width: 600px;height:400px;"></div>
- echarts インスタンス オブジェクトを初期化する
var myChart = echarts.init(document.getElementById('main'));
- 設定項目とデータの指定(オプション)
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'
}]
};
- echartsインスタンスオブジェクトに設定項目を設定する
myChart.setOption(option);
11-Echarts-基本構成
これには、学生が次の構成の各モジュールの主な機能を理解することが必要です。
知っておく必要がある主な構成:
series
xAxis
yAxis
grid
tooltip
title
legend
color
-
シリーズ
- シリーズ一覧。各シリーズは、次の方法で
type
独自のチャート タイプを決定します。 - 簡単に言うと、アイコン データ。アイコンの種類を指定し、複数のチャートを重ねることができます。
- シリーズ一覧。各シリーズは、次の方法で
-
xAxis: 直交座標系グリッドの x 軸
- boundaryGap: 座標軸の両側の空白戦略は true です。この時点では、スケールは分割線としてのみ使用され、ラベルとデータ ポイントは 2 つのスケール間のバンドの中央に配置されます。
-
yAxis: 直交座標系グリッドの y 軸
-
グリッド: デカルト座標系でグリッドを描画します。
-
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 ページに導入します。
- ニーズに応じてグラフをカスタマイズ
- 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);
})();
-
ニーズに応じてカスタマイズ
-
グラフの列の色を変更 #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) に変更されます。
// 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],
yAxiosIndex を追加して
データを変更した後:
完全なコード:
// 柱状图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 に smooth を追加します。
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 オブジェクトの data[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: ['直接访问', '邮件营销',
1. コーステクノロジースタック
プロジェクトの表示
このプロジェクトを完了するには、次の知識が必要です。
- div+cssレイアウト
- フレックスレイアウト
- 少ない
- ネイティブjs + jqueryを使用する
- レム適応
- eチャートの基本
オンライン体験(推奨)
https://yangyanyan.top/echarts-jobmap/
ソースコード
必ずスターを付けてください
https://gitee.com/yyy1203/echarts-jobmap.git
2.データ視覚化の概要
データだけを見ていると直感的には伝わりません。
3. プロジェクト手順の詳細説明
視覚化パネルの概要
データ視覚化の現在のトレンドに対応して、多くの企業がビジュアル チャートを使用してさまざまなシナリオ (マーケティング データ、生産データ、ユーザー データ) でデータを表示し、データをより直観的にし、データの特性をより際立たせる必要があります。
01-テクノロジーを活用する
このプロジェクトを完了するには、次の知識が必要です。
- div+cssレイアウト
- フレックスレイアウト
- 少ない
- ネイティブjs + jqueryを使用する
- レム適応
- eチャートの基本
02- 症例適応ソリューション
-
デザイン案は1920pxです
-
flexible.jsは画面を24等分に分割します
-
cssrem プラグインのベースライン値は 80px です
プラグイン - 設定ボタン - 拡張機能の設定 - ルート フォント サイズの設定。
ただし、vscode ソフトウェアを再起動して確実に有効にすることを忘れないでください
-
03-基本設定
- body は背景画像を設定し、ズームを 100%、行の高さを 1.15 に設定します。
- CSSの初期化
04ヘッダーレイアウト
- 高さは100pxです
- コンテナ内に表示される背景画像
- ズーム率は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-メインボックスメインモジュール
- 上と左に10ピクセルのパディングが必要です
- 列 列コンテナ。3:5:3 を占める 3 つの列に分割されています。
CSS スタイル:
.mainbox {
padding: 0.125rem 0.125rem 0;
display: flex;
.column {
flex: 3;
}
&:nth-child(2) {
flex: 5;
}
}
現在の効果
06-パブリックパネルモジュールパネル
- 高さは310pxです
- 1px ソリッド rgba(25, 186, 139, 0.17) ボーダー
- line.jpg 背景画像あり
- パディングは上部が 0、左右が 15px
、下部が 40px です。 - 下の余白は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;
}
}
}
- /ul>
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-ミドルレイアウト
- 上記はデジタルモジュールではありません
- 以下はマップマップモジュールです
- デジタル モジュール番号には背景色 rgba (101、132、226、0.1) があり、パディングは 15 ピクセルです。
- 中央の列の左側は 10 ピクセル、下部は 15 ピクセルの余白があることに注意してください。
- noモジュールは上下に分かれており、上部は数値(no-hd)、下部は関連テキスト記述(no-bd)です。
- HD なしデジタル モジュールの境界線は 1px ソリッド rgba(25、186、139、0.17) です。
- no-hd デジタル モジュールは 2 つの小さなリに分割されており、それぞれの小さなリの高さは 80 ピクセル、テキスト サイズは 70 ピクセル、色は #ffeb7b、フォントはアイコン フォントの electricFont です。
- no-hd は前後を使用して 2 つの小さな角を作成します。境界線は 2 ピクセルの実線 #02a6b5、幅は 30 ピクセル、高さは 10 ピクセルです。
- 最初の小さな li の後の小さな垂直線は幅 1 ピクセル、背景色は rgba (255, 255, 255, 0.2)、高さは 50%、上部 25% で十分です。
- no-bd にも小さな li が 2 つあり、高さは 40px、文字色は rgba(255, 255, 255, 0.7)、文字サイズは 18px、上マージンは 10px です。
/* 声明字体*/
@font-face {
font-family: electronicFont;
src: url(../font/DS-DIGIT.TTF);
}
マップモジュールの制作:
-
マップ モジュールの高さは 810px で、4 つのボックス チャートが含まれています。チャート モジュールを含む球ボックスは 1 回転し、2 回転します。
-
球体画像モジュールのマップ 1 のサイズは 518px です。背景画像は 100% スケールして透明度の中心に配置する必要があるため、追加する必要があります。3
-
1 つのマップを回転します 2. サイズは 643px です。100% 拡大縮小する必要があるため、背景画像を追加する必要があります。透明にするために中心に配置します。 6. z-index を使用して球を押したまま回転アニメーションにします。
-
回転 2 のマップ 3 のサイズは 566px です。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 は、直感的でインタラクティブで高度にカスタマイズ可能なデータ視覚化チャートを提供します。
言語:
- JSプラグインです
- パフォーマンスが良く、PC やモバイルデバイスでスムーズに動作します。
- 主要ブラウザに対応
- よく使用されるチャートが多数用意されており、カスタマイズできます。
公式サイトアドレス: 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
使用手順:
- echarts プラグイン ファイルを HTML ページに導入します。
- ある程度のサイズのDOMコンテナを用意する
<div id="main" style="width: 600px;height:400px;"></div>
- echarts インスタンス オブジェクトを初期化する
var myChart = echarts.init(document.getElementById('main'));
- 設定項目とデータの指定(オプション)
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'
}]
};
- echartsインスタンスオブジェクトに設定項目を設定する
myChart.setOption(option);
11-Echarts-基本構成
これには、学生が次の構成の各モジュールの主な機能を理解することが必要です。
知っておく必要がある主な構成:
series
xAxis
yAxis
grid
tooltip
title
legend
color
-
シリーズ
- シリーズ一覧。各シリーズは、次の方法で
type
独自のチャート タイプを決定します。 - 簡単に言うと、アイコン データ。アイコンの種類を指定し、複数のチャートを重ねることができます。
- シリーズ一覧。各シリーズは、次の方法で
-
xAxis: 直交座標系グリッドの x 軸
- boundaryGap: 座標軸の両側の空白戦略は true です。この時点では、スケールは分割線としてのみ使用され、ラベルとデータ ポイントは 2 つのスケール間のバンドの中央に配置されます。
-
yAxis: 直交座標系グリッドの y 軸
-
グリッド: デカルト座標系でグリッドを描画します。
-
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 ページに導入します。
- ニーズに応じてグラフをカスタマイズ
- 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);
})();
-
ニーズに応じてカスタマイズ
-
グラフの列の色を変更 #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) に変更されます。
// 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],
yAxiosIndex を追加して
データを変更した後:
完全なコード:
// 柱状图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 に smooth を追加します。
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 オブジェクトの data[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],