Каталог статей
-
- Знакомство с панелью визуализации
-
- 01 – Использование технологий
- 02- План адаптации кейса
- 03-Основные настройки
- 04-макет заголовка
- 05-основной модуль основного блока
- 06-Панель модуля общей панели
- 07- Модуль столбчатой диаграммы (макет)
- 08-Промежуточный макет
- 09-Echarts-Введение
- 10-Echarts-Опыт
- 11-Echarts-базовая конфигурация
- 12- Диаграмма гистограммы (два шага)
- 13-Настройка гистограммы 2
- 14- Линейная диаграмма 1 Создание модуля кадровых изменений
- 15- Линейная диаграмма 2 Производство модуля объема воспроизведения
- 16-круговая диаграмма 1 Производство модуля распределения возраста
- 17-Круговая диаграмма 2. Производство региональных распределительных модулей (диаграмма «Соловьиная роза»)
- 18-Echarts-Введение сообщества
- 19-Echarts-использование карты (расширение)
- 20- Окончательное масштабирование ограничений
Знакомство с панелью визуализации
В ответ на текущую тенденцию визуализации данных все больше и больше компаний должны использовать ее во многих сценариях (маркетинговые данные, производственные данные, пользовательские данные).Визуальные диаграммы используются для отображения и отражения данных, что делает данные более интуитивно понятными и характеристики данных более заметны.
01 – Использование технологий
Для реализации этого проекта необходимы знания:
- макет div + css
- гибкий макет
- Меньше
- Нативное использование js + jquery
- рем-адаптация
- основы диаграмм
02- План адаптации кейса
-
Проект дизайна 1920px
-
flexible.js делит экран на 24 равные части
-
Базовое значение плагина cssrem — 80 пикселей.
Плагин-Кнопка Конфигурация-Настроить расширенные настройки-Настройки в Root Font Size.
Но не забудьте перезапустить программное обеспечение 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-основной модуль основного блока
-
Нужен отступ 10px слева и справа
-
колонка колонка контейнер, разделенная на три колонки, соотношение 3:5: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) граница 1px
- Есть фоновое изображение line.jpg
- Отступы: 0 сверху, 15 пикселей снизу и 40 пикселей снизу.
- Нижнее поле 15px.
- Используйте поле панели до и после, чтобы сделать два верхних угла 10px и линию 2px сплошными #02a6b5
- Добавьте новое поле до и после, чтобы сделать два нижних угла шириной и высотой 10 пикселей.
.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
-
Высота диаграммы модуля содержимого значка 240 пикселей
-
Вышеупомянутое можно использовать как общедоступную часть панели.
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-Промежуточный макет
- Выше нет цифрового модуля
- Ниже приведен модуль карты карты.
- Числовой модуль no имеет фоновый цвет rgba(101, 132, 226, 0,1); имеет отступ 15 пикселей.
- Обратите внимание, что средний столбец имеет поля 15 пикселей слева и 10 пикселей справа.
- нет Верхний и нижний разделы в модуле — это цифры вверху (no-hd) и соответствующие текстовые описания внизу (no-bd)
- цифровые блоки no-hd имеют сплошную границу 1px rgba(25, 186, 139, 0,17)
- Цифровой модуль no-hd разделен на два небольших листа, высота каждого маленького листа составляет 80 пикселей, размер текста — 70 пикселей, цвет — #ffeb7b, а шрифт — значок шрифта electronicFont.
- no-hd Используйте после и до, чтобы сделать 2 маленьких угла, граница 2px сплошная #02a6b5 ширина 30px высота 10px
- Маленькая вертикальная линия может быть назначена первому маленькому li после Цвет фона rgba(255, 255, 255, 0.2), высота 50% сверху 25%.
- Также есть два маленьких li в no-bd, высота 40px, цвет текста rgba(255, 255, 255, 0.7), размер текста 18px, верхний отступ 10px
/* 声明字体*/
@font-face {
font-family: electronicFont;
src: url(../font/DS-DIGIT.TTF);
}
Изготовление модуля карты:
- Высота модуля карты составляет 810 пикселей, который содержит диаграмму из 4 блоков, поместите модуль диаграммы в сферическое поле, вращение 1, вращение 2.
- Размер модуля сферического изображения map1 – 518 пикселей. Необходимо добавить фоновое изображение, поскольку оно должно быть масштабировано до 100 % и помещено в положение с максимальной прозрачностью по центру.3
- Поверните 1 карту 2 размером 643 пикселя, чтобы добавить фоновое изображение, потому что его нужно масштабировать до 100% и расположить по центру прозрачности.6 Выполните анимацию вращения и используйте z-индекс, чтобы нажать на сферу
- Поворот 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 в настоящее время является самой высоко оцененной библиотекой инструментов визуализации Javascript в Интернете (сложно начать работу).
- ECharts.js Библиотека визуализации данных Javascript с открытым исходным кодом, созданная Baidu.
- Highcharts.js Зарубежная библиотека визуализации данных, некоммерческая и бесплатная, используется многими крупными зарубежными компаниями.
- Новое поколение решений для визуализации данных от AntV Ant Financial и т. д.
- Highcharts и Echarts похожи на отношения между Office и WPS.
ECharts, библиотека визуализации с открытым исходным кодом, реализованная с использованием JavaScript, может без проблем работать на ПК и мобильных устройствах, совместима с большинством современных браузеров (IE8/9/10/11, Chrome, Firefox, Safari и т. д.) и опирается на векторную графику в Внизу Библиотека ZRender предоставляет интуитивно понятные, интерактивные и настраиваемые диаграммы визуализации данных.
Народный:
- это JS-плагин
- Хорошая производительность может работать без сбоев на ПК и мобильных устройствах
- Совместимость с основными браузерами
- Предоставляется множество часто используемых диаграмм, которые можно настроить .
Адрес официального сайта: https://www.echartsjs.com/zh/index.html
10-Echarts-Опыт
Официальное руководство: [Начните работу с ECharts за пять минут](https://www.echartsjs.com/zh/tutorial.html#Начните работу с 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
определяет - Vernacular: данные значка, укажите тип значка, несколько диаграмм могут перекрываться.
- список серий. Каждая серия
-
xAxis: ось x в сетке прямоугольной системы координат.
- borderGap: Стратегия гашения по обеим сторонам оси координат верна. В настоящее время шкала используется только как разделительная линия, а метки и точки данных будут находиться в середине полосы между двумя шкалами.
-
yAxis: ось Y в сетке прямоугольной системы координат.
-
grid: Сетка чертежа в декартовой системе координат.
-
заголовок: компонент заголовка
-
всплывающая подсказка: компонент окна подсказки
-
легенда: компонент легенды
-
цвет: список цветов палитры
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- Диаграмма гистограммы (два шага)
- Найдите похожие примеры на официальном сайте, проанализируйте их должным образом и внесите в 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), а размер шрифта — 12 пикселей.
- Стиль оси X не отображается
// 设置x轴标签文字样式
-
// Цвет текста и размер по оси X
axisLabel: { color: "rgba(255,255,255,.6)", fontSize: "12" }, // Стиль по оси X не отображает axisLine: { show: false // Если вы хотите установить отдельные стили линий // lineStyle: { // цвет: "rgba(255,255,255,.1)", // ширина: 1, // тип: "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. Измените соответствующую конфигурацию второй группы столбцов (форма кадра).
name: "框",
type: "bar",
barCategoryGap: 50,
barWidth: 15,
itemStyle: {
color: "none",
borderColor: "#00c1de",
borderWidth: 3,
barBorderRadius: 15
},
data: [19325, 23438, 31000, 121594, 134141, 681807]
}
Требование 6. Добавьте второй набор данных на ось 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. Настройте два набора стеков столбцов и замените данные
// 给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)
- Два конца оси не нуждаются во внутреннем интервале borderGap.
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. Настройка двухлинейных графиков
- Цвета соответственно: #00f2f1 #ed3f35
- Измените полилинию как сглаженную и добавьте гладкость к истине в данных серии
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, чтобы заменить данные в первом объекте серии данными [0] в объекте 2020.
- Нажмите кнопку 2020, чтобы заменить данные во втором объекте ряда данными в объекте 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: Измените конфигурацию двух линейных модулей (обратите внимание, что в серии она индивидуальна).
//第一条 线是圆滑
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:
- Измените компонент легенды, чтобы он отображался внизу и по центру.
- Ширина и высота каждого маленького значка изменены на 10 пикселей.
- размер текста 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. Не допускайте слишком длинной направляющей линии при масштабировании. Направляющая линия немного короче (задается объектом labelLine в объекте серии)
- Схема подключения 6 пикс.
- текст ссылки 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)]
- Здесь вы можете найти несколько настраиваемых диаграмм на основе echart, которые эквивалентны плагинам, разработанным на основе jquery.Здесь представлены сторонние диаграммы, разработанные на основе echarts.
19-Echarts-использование карты (расширение)
Обратитесь к примеру сообщества: https://gallery.echartsjs.com/editor.html?c=x0-ExSkZDM (симулированный маршрут самолета)
Этапы реализации:
- Во-первых, вам нужно скачать js-файл china.js, чтобы предоставить карту Китая.
- Во-вторых, потому что в нем больше кодов, мы создаем новый файл 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;
}
}