散点图实战:如何用ECharts打造动态数据分布可视化

ECharts 中国地图进阶:动态添加任意城市与自定义图标散点图实战 本文详细介绍了使用ECharts实现中国地图动态数据可视化的进阶技巧,包括动态添加任意城市坐标、自定义图标散点图配置等实战方法。通过GeoJSON数据提取、高德API坐标获取、Base64图标转换等技术方案,解决传统地图可视化中城市级别数据展示不足和样式单一的问题,帮助开发者构建高性能、个性化的全国分布可视化系统。 阅读详情

1. 为什么散点图是数据探索的“第一眼”?

大家好,我是老司机,在数据可视化的江湖里摸爬滚打了十来年,用过的图表库少说也有七八个。今天咱们不聊那些复杂的,就聊聊最基础、也最强大的散点图。很多刚入门的朋友可能会觉得,散点图不就是一堆点嘛,有什么好讲的?那你可就错了。在我处理过的上百个数据分析项目里,散点图往往是打开数据宝藏的第一把钥匙。

想象一下,你手头有一份数据,记录了全国几百个城市的人口数量和GDP。光看数字表格,你脑袋里能立刻浮现出它们之间的关系吗?很难。但如果你把这些城市画成一个散点图,横轴是人口,纵轴是GDP,每个城市是一个点。一瞬间,你就能看到:哦,大部分点都集中在左下角,说明中小城市居多;右上角有几个孤零零的“巨无霸”点,那可能就是一线城市;中间似乎有一条隐隐向上延伸的“带子”,这暗示着人口和GDP可能存在正相关关系。这种直观的洞察,是任何统计数字都无法替代的。

散点图的核心价值,就在于它把抽象的数字关系,变成了肉眼可见的空间分布。它不只能看两个维度的关系,通过点的颜色、大小甚至动态变化,我们可以轻松地把第三、第四个维度也塞进去。比如,在刚才的城市数据里,我们还可以用点的颜色代表人均GDP(暖色高,冷色低),用点的大小代表城市面积。这样一来,一张图里就同时蕴含了四个维度的信息:人口、总GDP、人均GDP和面积。哪个城市“又大又强”,哪个城市“小而美”,哪个城市“大而不强”,一目了然。

所以,无论你是数据分析师、产品经理,还是后端开发想给老板做个数据看板,散点图都是你必须熟练掌握的“基本功”。它看似简单,实则内藏乾坤,是数据故事最有力的开场白。

2. 从静态到动态:ECharts散点图的进化之路

早期的散点图大多是静态的,生成一张图片,故事就讲完了。但在今天这个数据实时更新的时代,静态图已经不够看了。老板想看实时销售分布,运营同学想监控用户行为的动态变化,这时候,动态的、交互式的散点图就成了刚需。而ECharts,正是实现这个需求的神兵利器。

我最早接触ECharts还是很多年前,那时候它就已经以配置灵活、图表丰富著称。但让我真正把它作为主力工具的,是它在动态数据和交互体验上的持续进化。别的库可能让你写一大堆代码才能实现一个点的新增动画,在ECharts里,往往就是配置项里加一两行的事。

那么,一个“动态”的散点图,到底“动”在哪里呢?我总结主要有三个方面:

第一,是数据的动态更新。 这是最核心的。比如我们做一个实时监控系统,每秒都有新的数据从服务器推过来。我们不可能每秒重新生成一张图。ECharts提供了优雅的API,setOption 方法可以只传入变化的部分,配合 animationDuration 配置项,新数据点可以平滑地“飞入”图表,旧数据点也可以淡出,整个过程流畅自然,让观众的眼睛能紧紧跟随数据变化的轨迹。

第二,是视觉映射的动态联动。 这是提升图表表现力的关键。举个例子,你的散点图用颜色表示温度,用大小表示湿度。当用户拖动一个时间轴滑块时,图表展示的数据从“夏季”切换到“冬季”。此时,不仅仅是点位置变了,整个颜色映射的基准(从高温的红色系切换到低温的蓝色系)和大小映射的基准都应该联动变化。ECharts的 visualMap 组件可以轻松绑定到数据上,实现这种多维度的动态视觉编码。

第三,是交互反馈的动态响应。 静态图是你讲、观众听。动态交互图是观众问、图表答。当用户用鼠标滑过一个数据点时,这个点可以高亮显示,同时弹出一个小框(tooltip),清晰展示这个点的详细数据。用户还可以框选一片区域,图表会自动放大这片区域(dataZoom),或者高亮显示框选内的所有点,甚至触发一个筛选事件,去更新页面其他关联的图表。这种即时的、丰富的交互反馈,让用户从被动的观察者变成了主动的探索者。

下面,我们就从一个最简单的静态散点图开始,一步步给它注入“生命力”。

2.1 第一步:搭建你的第一个ECharts散点图

万事开头难,但用ECharts开头真的不难。咱们先抛开所有复杂概念,用最少的代码把图画出来。这里我假设你有一个基本的HTML/JavaScript开发环境。

首先,在HTML的<head>里引入ECharts。我强烈建议使用官方CDN,既快又稳定。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>我的第一个动态散点图</title>
    <!-- 引入 ECharts -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
</head>
<body>
    <!-- 准备一个定义了宽高的DOM容器 -->
    <div id="main" style="width: 800px; height: 600px;"></div>
    <script type="text/javascript">
        // 我们的JavaScript代码将写在这里
    </script>
</body>
</html>

接下来,在 <script> 标签里,我们只需要四行核心代码:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    xAxis: { type: 'value' }, // X轴是数值轴
    yAxis: { type: 'value' }, // Y轴是数值轴
    series: [{ // 系列列表,这里只有一个散点系列
        type: 'scatter', // 系列类型:散点图
        data: [ // 数据格式是二维数组,每个子数组代表一个点的[x, y]坐标
            [10, 20],
            [15, 35],
            [20, 25],
            [30, 40],
            [35, 30],
            [40, 50]
        ]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

保存,用浏览器打开这个HTML文件,你应该能看到一个最简单的散点图。六个点孤零零地躺在坐标系里。虽然简陋,但恭喜你,第一步成功了!这个 option 对象就是ECharts图表的灵魂,所有魔法都通过配置它来实现。

2.2 第二步:让图表“活”起来——基础动态数据更新

现在,我们来让这些点动一动。模拟一个最常见的场景:数据定时从后端推送过来。我们将使用JavaScript的 setInterval 函数来模拟这个推送过程。

我们在刚才的代码后面添加:

// 模拟实时数据流
setInterval(function () {
    // 随机生成一个新的数据点,x在0-50之间,y在0-60之间
    var newDataPoint = [
        Math.round(Math.random() * 50),
        Math.round(Math.random() * 60)
    ];
    
    // 获取当前series中第一个系列的数据(我们的散点数据)
    var oldData = option.series[0].data;
    
    // 为了不让点无限增多,我们只保留最新的20个点
    // 将新点加入数组末尾,并截取最后20个点
    oldData.push(newDataPoint);
    if (oldData.length > 20) {
        oldData.shift(); // 移除数组最旧的一个点
    }
    
    // 重要:更新option中的数据
    option.series[0].data = oldData;
    
    // 使用setOption更新图表,注意这里传入了新的option
    // 第二个参数`true`表示不合并新旧配置,完全替换。但为了平滑动画,我们通常不这么做。
    // 更常见的做法是,只传入变化的部分,并设置`notMerge: false`(默认)
    myChart.setOption({
        series: [{
            data: oldData // 只更新数据部分
        }]
    });
}, 1000); // 每1000毫秒(1秒)执行一次

刷新页面,你会发现图表每秒会新增一个随机位置的点,同时最旧的点会消失,始终只显示最新的20个点。这就是最基本的动态更新。myChart.setOption() 方法是关键,当传入一个包含新数据的配置对象时,ECharts会智能地计算差异,并默认以平滑的动画过渡到新状态。

2.3 第三步:提升表现力——视觉映射与多维度编码

只有位置动,还不够酷。我们经常需要在一张图上表达超过两个维度的信息。ECharts的 visualMap(视觉映射组件) 就是干这个的。它能将数据中额外的维度(第三维、第四维)映射到点的颜色、大小、透明度等视觉通道上。

假设我们有一组电商数据,每个点代表一个商品,X轴是浏览量,Y轴是销售额。现在我们想看看商品的利润率和库存量情况。我们可以用颜色表示利润率(红色高,蓝色低),用点的大小表示库存量(库存越多点越大)。

我们需要改造一下数据结构和 option:

// 更复杂的数据:每个点是一个对象,包含[x, y, 利润率, 库存量]
var productData = [
    { value: [120, 85, 0.35, 200], name: '商品A' },
    { value: [95, 120, 0.42, 150], name: '商品B' },
    { value: [300, 60, 0.18, 500], name: '商品C' },
    { value: [80, 200, 0.55, 80],  name: '商品D' },
    { value: [250, 150, 0.28, 300], name: '商品E' },
    // ... 更多数据
];

var option = {
    xAxis: { 
        type: 'value',
        name: '浏览量' // 给坐标轴起个名字
    },
    yAxis: {
        type: 'value',
        name: '销售额(万)'
    },
    // 视觉映射组件
    visualMap: [
        { // 第一个visualMap控制颜色(利润率)
            type: 'continuous', // 连续型映射
            dimension: 2, // 指定映射到数据的第3个维度(索引2,即利润率)
            min: 0.1, // 数据范围最小值
            max: 0.6, // 数据范围最大值
            calculable: true, // 显示拖拽用的手柄
            inRange: {
                color: ['#4575b4', '#ffffbf', '#d73027'] // 蓝-黄-红的渐变色
            },
            text: ['高利润率', '低利润率'], // 两端的文本
            left: '5%', // 组件放置位置
            top: '10%'
        },
        { // 第二个visualMap控制点的大小(库存量)
            type: 'continuous',
            dimension: 3, // 映射到数据的第4个维度(索引3,库存量)
            min: 50,
            max: 600,
            calculable: true,
            inRange: {
                symbolSize: [10, 40] // 点的大小范围从10到40像素
            },
            text: ['高库存', '低库存'],
            left: '5%',
            top: '40%'
        }
    ],
    series: [{
        type: 'scatter',
        data: productData,
        // 启用提示框
        tooltip: {
            formatter: function (param) {
                // param.data 就是 productData 里的一个对象
                return `商品:${param.data.name}<br/>
                        浏览量:${param.data.value[0]}<br/>
                        销售额:${param.data.value[1]}万<br/>
                        利润率:${(param.data.value[2]*100).toFixed(1)}%<br/>
                        库存:${param.data.value[3]}`;
            }
        }
    }]
};
myChart.setOption(option);

现在再看图表,信息量就爆炸了。你一眼就能看出:商品D(点颜色最红、大小中等)是一个“小而美”的爆款,利润率最高,但库存不多可能需要补货。商品C(点颜色偏蓝、个头最大)虽然浏览量巨大,但利润率很低,且库存积压严重,可能需要促销清仓。通过 visualMap,我们成功地把四维数据压缩在了一张二维图上,并且每个维度的信息都清晰可辨。

3. 高级交互:让用户成为数据探索的主角

图表画得再漂亮,如果只能看不能“玩”,那它的价值就折损了一大半。ECharts提供了强大的交互功能,能让静态的展示变为动态的探索。这里我分享几个最实用、最能提升体验的交互技巧。

3.1 数据区域缩放(dataZoom):聚焦你想看的

当数据点成百上千,密密麻麻挤在一起时,全局视图可能什么也看不清。dataZoom 组件允许用户通过鼠标滚轮、拖动滑块或直接框选来放大图表的某个区域。

在 option 中添加:

option.dataZoom = [
    {
        type: 'slider', // 滑动条型
        xAxisIndex: 0, // 控制第一个x轴
        start: 10, // 默认缩放范围的起始百分比
        end: 60 // 默认缩放范围的结束百分比
    },
    {
        type: 'slider',
        yAxisIndex: 0,
        left: '93%', // 放在右侧
        start: 30,
        end: 70
    },
    {
        type: 'inside', // 内置型,支持鼠标滚轮缩放和拖拽平移
        xAxisIndex: 0,
        yAxisIndex: 0
    }
];

添加后,图表下方和右侧会出现滑动条,用户可以通过拖动来调整显示的坐标范围。更重要的是,用户可以用鼠标直接在图表上拖拽出一个矩形框,松开后图表会自动放大到框选区域。这个“框选缩放”的功能(由 type: 'inside' 提供)对于探索性数据分析来说极其方便。

3.2 联动高亮与点击事件:从宏观到微观

在复杂的仪表盘中,散点图往往不是孤立的。比如,一个散点图展示用户群分布,一个柱状图展示用户消费能力。我们希望当鼠标悬停在散点图的某个“用户群”点上时,柱状图能自动高亮显示对应群体的消费柱。

这需要通过ECharts的 connect 和事件监听来实现。假设我们有两个图表实例 myChart1(散点图)和 myChart2(柱状图)。

// 将两个图表实例关联起来
echarts.connect([myChart1, myChart2]);

// 在散点图的option中,配置高亮样式
series: [{
    type: 'scatter',
    // ... 其他配置
    emphasis: { // 高亮状态下的样式
        focus: 'series', // 可选'series', 'self'。这里设为'self'只高亮自己这个点
        itemStyle: {
            shadowBlur: 10,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
        }
    }
}]

// 监听散点图的事件
myChart1.on('mouseover', function (params) {
    // params.seriesIndex 和 params.dataIndex 告诉我们悬停的是哪个系列的哪个数据点
    console.log('鼠标悬停在:', params.seriesName, params.dataIndex);
    // 这里可以触发一个自定义函数,去更新柱状图的数据或高亮状态
    highlightBarChart(params.dataIndex);
});

myChart1.on('click', function (params) {
    // 点击事件,可以做得更彻底,比如跳转到详情页,或者弹出一个模态框展示该点的全部信息
    alert(`你点击了 ${params.data.name},详细信息:${JSON.stringify(params.data.value)}`);
});

通过 connect,图表间的基础组件(如图例、视觉映射)可以联动。通过事件监听,我们可以实现更复杂的自定义交互逻辑,真正让图表之间“对话”起来。

3.3 动态筛选与图例交互

如果你的散点图数据包含分类(比如商品分为“家电”、“数码”、“服饰”),那么图例(legend)就不再是一个简单的标签,而是一个强大的筛选器。

option.legend = {
    data: ['家电', '数码', '服饰'], // 图例项,对应series中的name或数据中的类别
    selected: {
        '家电': true,
        '数码': true,
        '服饰': true // 初始状态全部选中
    }
};
option.series = [
    { // 家电类数据
        name: '家电',
        type: 'scatter',
        data: [...], // 家电数据
        itemStyle: { color: '#5470c6' }
    },
    { // 数码类数据
        name: '数码',
        type: 'scatter',
        data: [...], // 数码数据
        itemStyle: { color: '#91cc75' }
    },
    { // 服饰类数据
        name: '服饰',
        type: 'scatter',
        data: [...], // 服饰数据
        itemStyle: { color: '#fac858' }
    }
];

这样配置后,页面上的图例就变成了可点击的按钮。用户点击“数码”,图表上所有数码类的点就会隐藏/显示。这种交互让用户能自由组合想查看的数据类别,聚焦于自己关心的部分,极大地提升了图表的可探索性。

4. 实战踩坑与性能优化指南

理论讲得再多,不如踩一次坑记得牢。下面是我在多年项目实践中总结的几个常见问题和优化技巧,希望能帮你少走弯路。

4.1 大数据量下的性能瓶颈与解决方案

当数据点超过几千甚至上万个时,浏览器的渲染压力会急剧增大,可能导致页面卡顿。ECharts 5.x版本在性能上已经做了很多优化,但我们依然可以主动做一些事情:

1. 开启大型模式(large)与渐进渲染(progressive):

series: [{
    type: 'scatter',
    large: true, // 开启大型散点图模式
    largeThreshold: 2000, // 数据量大于2000时启用large模式
    progressive: 400, // 渐进式渲染,每400毫秒绘制一批数据
    data: hugeDataArray // 假设这是你的海量数据
}]

开启 large 模式后,ECharts会使用一种更高效的绘制算法(通常是采样)来渲染超大量数据点,虽然会损失一些精度,但能保证流畅性。progressive 则把渲染任务分片,避免长时间阻塞页面。

2. 使用 showSymbol: false 与合理采样: 在数据动态流动的场景,如果新点以极快速度涌入,可以暂时关闭点的绘制(showSymbol: false),只显示趋势线(如果有点的话),或者先对数据进行降采样。比如每秒有100个点,你可以每10个点取一个平均值再绘制,既能反映趋势,又大大减轻了渲染负担。

3. 善用数据聚合(data clustering): 对于展示宏观分布而非精确个体的场景,可以考虑在服务端或前端对数据进行聚类。将位置相近的点聚合成一个带权重的“超级点”,用这个超级点的大小表示其包含的原始点数。ECharts本身不直接提供聚类功能,但你可以使用一些算法库(如简单的网格聚类)预处理数据后再传给ECharts。

4.2 移动端适配与触摸交互

现在很多数据看板需要在手机或平板上查看。ECharts对移动端有很好的支持,但需要额外注意:

1. 响应式容器: 不要给图表容器设置固定的像素宽高,而是使用百分比,并通过CSS媒体查询或JavaScript监听 resize 事件。

<div id="main" style="width: 100%; height: 50vh;"></div> // 使用视口高度单位
// 在图表初始化后,监听窗口变化
window.addEventListener('resize', function() {
    myChart.resize();
});

2. 优化触摸交互: 移动端没有鼠标悬停(hover),所以 tooltip 的触发方式要改为 'item' 并配合点击('click'),或者使用 axisPointer。

tooltip: {
    trigger: 'item',
    confine: true // 防止tooltip超出屏幕
},
// 可以增加一个触摸提示
touchstart: function(event) {
    // 处理触摸开始,可能用于触发一个更明显的选中效果
}

同时,考虑调大点击热区,因为手指比鼠标指针粗得多。

4.3 让动画更顺滑:关键配置项

动态图表的灵魂在于动画。生硬的跳转会打断用户的注意力流。ECharts提供了丰富的动画配置:

series: [{
    type: 'scatter',
    // ... 数据和其他配置
    animation: true, // 开启动画
    animationDuration: 1000, // 初始动画时长,单位毫秒
    animationDurationUpdate: 300, // 数据更新动画的时长
    animationEasing: 'cubicOut', // 动画缓动函数,'cubicOut'是较平滑的一种
    animationThreshold: 2000 // 数据量小于此阈值才开启动画,避免大数据量卡顿
}]

对于数据更新动画,animationDurationUpdate 是关键。我一般会设为300-500毫秒,这个时长既能让人眼感知到变化,又不会觉得拖沓。animationEasing 推荐使用 'cubicOut'、'quadraticOut' 这类“缓出”函数,让动画结尾更自然。

还有一个高级技巧是使用 animationDelay 和 animationDelayUpdate 实现交错动画,让每个点不是同时而是依次飞入,视觉效果非常炫酷,尤其适合展示数据序列。

4.4 常见报错与调试心得

  • “Cannot read property 'getAttribute' of null”: 这通常是因为在DOM容器尚未被浏览器加载完成时,就执行了 echarts.init(document.getElementById(...))。确保你的初始化脚本放在容器DOM之后,或者包裹在 window.onload 或 DOMContentLoaded 事件里。
  • 图表显示空白或错位: 首先检查浏览器控制台有无JS报错。然后,检查容器div是否设置了有效的宽度和高度。如果宽高是0,图表自然是空的。另外,确保没有CSS冲突,比如父容器设置了 overflow: hidden 且尺寸不对。
  • 数据更新了但图表没变: 确认你调用 myChart.setOption(newOption) 时,传入的 newOption 是否正确。一个更稳妥的做法是使用 myChart.setOption({ series: [{ data: newData }] }, { notMerge: false }),确保是合并更新而非替换。notMerge: false 是默认值,通常不用写,但如果你之前用 true 全局替换过,这里可能需要显式指定。
  • 视觉映射(visualMap)不生效: 检查 visualMap.dimension 设置是否正确,它指向的是数据维度索引(从0开始)。同时确认 inRange 里的颜色或大小数组配置无误。最容易被忽略的是,数据中对应维度的值是否在 min 和 max 定义的范围内,超出范围的值不会被映射。

最后,遇到复杂问题,善用ECharts官网的示例和配置项手册。几乎你遇到的任何效果,在示例库里都能找到类似的代码片段。多动手改改示例代码,是学习ECharts最快的方式。

Javascript 高级教程:ECharts 数据可视化应用指南 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。 阅读详情

相关推荐

ECharts数据可视化实战作业

ECharts 是由百度公司开源的一款基于 JavaScript 的数据可视化图表库,专为 Web 端的数据展示而设计。它不仅支持丰富的图表类型,还具备高度的可定制性和交互性,适用于从基础柱状图到复杂地理可视化的各种场景。自2014年发布以来,ECharts 不断迭代更新,已成为国内使用最广泛的前端可视化库之一,并被广泛应用于金融、电商、政府等多个行业。其核心优势在于简洁的 API 接口、良好的兼容性以及强大的社区支持。

weixin_32456485的博客 756

echarts散点图加趋势线_ECharts · Feature

ArchitectureECharts (Enterprise Charts 商业产品图表库)提供商业产品常用图表,底层基于ZRender(一个全新的轻量级canvas类库),创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图、柱状图、散点图、K线图、饼图、雷达图、地图、和弦图、力导向布局图、仪表盘以及漏斗图,同时支持任意维度的堆积和多图表混合展现。支持IE6/7/8/9+,chro...

weixin_39611049的博客 2027

Echarts数据可视化30个实战Demo合集

数据可视化是将抽象数据转化为直观图形表示的过程,旨在提升信息认知效率。通过视觉编码(如颜色、长度、面积),复杂数据中的趋势、异常和关联得以快速识别。在金融领域,实时风控仪表盘依赖热力图与时间序列图监控交易行为;智慧城市建设中,地理信息可视化助力交通流量调度;医疗健康利用折线图追踪患者生命体征变化;电商平台则通过柱状图与饼图分析用户行为与销售结构。这些场景共同体现了可视化“以图释数”的核心价值。主流工具生态丰富,包括D3.js、Tableau、Power BI等,而Echarts。

weixin_42513928的博客 1057

10分钟快速上手:vue-echarts 与数据库集成打造动态数据可视化看板

想要在Vue项目中快速构建专业级的数据可视化看板吗?vue-echarts正是你需要的终极解决方案!作为Vue.js的Apache ECharts™组件,它让数据可视化变得前所未有的简单和高效。🎯 ## 什么是vue-echarts? vue-echarts是一个专为Vue.js框架设计的ECharts图表组件库。它完美支持Vue 2和Vue 3,让你能够轻松创建各种复杂的图表和可视化效果。

gitblog_01176的博客 1013

SpringBoot结合ECharts构建的大数据可视化系统实战

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是简化Spring应用的初始搭建以及开发过程。它使用了特定的方式来配置Spring,使得开发者能够更快捷、更简便地创建独立的、生产级别的基于Spring框架的应用。ECharts是一个使用 JavaScript 实现的开源可视化库,它构建在 Zrender 之上,提供了直观、生动、可高度个性化定制的数据可视化图表。ECharts 最初由百度团队创建,旨在解决商业图表需求的复杂性和多样性问题。

weixin_35433448的博客 990

Echarts图表实例教程:打造交互式数据可视化

ECharts是百度开源的一个使用JavaScript实现的开源可视化库,能够轻松实现丰富的可视化效果,完美支持各种终端显示,例如PC、移动端以及各种大屏幕显示设备。ECharts具有轻量级、易使用、功能丰富等特点,提供直观、生动、可交互、高度可定制的数据可视化图表。ECharts 提供了丰富的内置交互功能,但对于一些特殊需求,你可能需要编写自定义的交互行为。这可以通过ECharts提供的丰富的API和事件监听机制来实现。以下是一个自定义交互的简单例子。

weixin_42588672的博客 1770

鸿蒙HarmonyOS NEXT开发:使用三方库实现Echarts图表功能的实战指南

ECharts是一个基于JavaScript的图表库,它提供了丰富的图表类型和交互功能,使开发者能够在网页中创建各种类型的交互式图表和数据可视化效果。无论是折线图、柱状图、饼图,还是散点图、雷达图、地图等,ECharts都能轻松应对。

在这里,我乐于倾囊相授,分享我的技术心得、项目实战经验、技术技巧。希望能够惠及更多的开发者,助力大家在技术的海洋中扬帆远航。 3402

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

从零到一:ECharts地图与散点图的创意融合实践

本文详细介绍了ECharts地图与散点图的创意融合实践,从基础配置到高级技巧,涵盖geo与series-map的核心区别、数据绑定、样式定制以及散点图与地图的深度整合。通过实战案例和代码示例,帮助开发者掌握ECharts地图可视化的关键技术,提升数据展示效果。

weixin_28559803的博客 290

全网最详细单细胞保姆级分析教程(一) ---pbmc

通过观察热图,可以了解不同细胞在主成分上的分布情况,以及主成分与细胞特征之间的关系。数据归一化是数据分析中的常见步骤,旨在消除数据集中不同特征之间的量纲差异,并使它们在相同的尺度上进行比较。函数会根据指定的主成分维度计算数据点之间的距离,并找到每个数据点的邻居。函数会根据数据点之间的相似性将其分组到不同的聚类中。数据缩放是数据分析中的常见步骤,旨在将数据的特征值调整到相似的范围,以避免某些特征对分析结果的过度影响。通过可视化维度载荷,可以了解哪些特征对主成分的形成起到了重要作用,以及不同特征之间的相关性。

ZxVSaccount的博客 6707

AP发票批量付款程序(WEB ADI)

CREATE OR REPLACE PACKAGE MEW_AP_BATCH_PAYMENTS_PKG IS   PROCEDURE MAIN(P_BATCH_ID          NUMBER                 ,P_ORG_ID            NUMBER                 ,P_BANK_ACCOUNT_NAME VARCHAR2

储藏室 5051

数据可视化实战:从概念到应用(ECharts + jQuery + Flask)

本文介绍了数据可视化的基础概念与实现方法,重点讲解了ECharts、jQuery和Flask的技术组合应用。首先阐述了数据可视化的定义和价值,包括提升理解效率、发现规律等功能。随后详细演示了ECharts的入门使用和动态数据更新方法,结合jQuery实现交互功能,并通过Flask搭建后端API服务。文章还提供了完整的项目结构示例和优化建议,如响应式设计、主题切换等。最后总结了该技术架构的优势,并展望了WebSocket实时推送等发展方向。这套方案适用于中小规模数据分析场景,能有效将复杂数据转化为直观的可视化

2401_89119076的博客 852

从冰棍到铸钢:手把手用Fluent融化凝固模型模拟3个不同场景(含案例设置对比)

本文深入探讨了Fluent融化凝固模型在冰棍融化、巧克力涂层凝固和钢铁连铸三个不同场景中的应用。通过详细的参数设置和案例对比,帮助工程师掌握相变模拟的核心技巧,提升工业级CFD分析的精度和效率。

weixin_42522953的博客 471

高德地图数据可视化终极指南:echarts-extension-amap完整教程 [特殊字符]

echarts-extension-amap是一个强大的开源扩展,专为Apache ECharts和高德地图的无缝集成而设计。这个扩展让你能够在ECharts可视化图表中嵌入高德地图服务,实现地理空间数据可视化的完美融合。无论你是数据分析师、前端开发者还是GIS专业人员,这个工具都能帮助你创建出既美观又功能丰富的地图可视化应用。 ## 🎯 快速入门:5分钟上手ECharts高德地图集成 想要

gitblog_00701的博客 986

关于小样本学习综述论文的总结

对小样本学习综述的个人总结

qq_46176086的博客 5456

【HarmonyOS】ArkUI的组件扩展

ArkuI的组件扩展主要是通过等装饰器来对于一些常用的自定义组件进行封装, 来简化UI开发流程, 提高自定义组件的可复用性。

2302_79763237的博客 1166

Echarts地图散点图结合闪点轮播:动态展示地理数据的利器

Echarts地图散点图结合闪点轮播:动态展示地理数据的利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代数据可视化的领域中,将地理信息以直观、动态的形式展现给用户,是提升信息传递效率的重要手段。Echarts 地图+散点图结合 +闪点+轮播项目,正是基于这一需求,利用 Echarts 的绘图能力,将地图与散点图相结合,并融入了闪点效果与轮播功能。这不仅丰富了...

gitblog_06777的博客 871

腾讯面试——机器学习岗面试总结

先写合并两个有序数组,接着写合并n个有序的数组,假设总共m个数,讲了一个思路两两合并直到只剩下一个数组,分析一下时间复杂度(MlogN),面试官不满意,然后想了一下说了另一个思路,用n个指针开始指向各个数组的首端,用一个优先队列维护他们的最小值,每次拿出最小值的指针然后插入该指针的下一个值。感觉跟二面面试官聊得还是挺开心的,他详细地介绍了他们部门所做的业务,然后问了一下什么时候能来实现,我说只能暑假七八两个月,他觉得有点晚,这样子不利于转正,有些人都实习半年的,回去讨论一下,正式批之前给我答复。

FPGA/MATLAB学习教程/源码/项目合作开发 1231

魔改echarts生成类环形散点图,附带随机数据的组装

我们先看效果图,如下图所示:接下来是代码部分,首先准备一个容器: &amp;lt;div class=&quot;col-sm-12 chart&quot; id=&quot;backImage&quot;&amp;gt; &amp;lt;div id=&quot;monitor-rada&quot; class=&quot;rada&quot;&amp;gt;&amp;lt;/div&

Eiwen的博客 2029

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

XiaoqiangClub的博客 5162

ADT MCP Server 把 ABAP 开发带进 Agent 模式

今天讨论 ADT MCP Server,不能只把它看成 Visual Studio Code 里多出来的一个开关。它真正有意思的地方,在于它把 ABAP 后端开发里那些原本需要手工点击、手工创建、手工激活、手工查服务元数据的动作,包装成一组可以被 GitHub Copilot 这类 coding agent 调用的工具。SAP 在 RAP130 练习里把它描述为运行在 ADT for Visual Studio Code 扩展内部的本地 HTTP Server,它实现的是 Model Context Pro

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

echarts散点图加趋势线_ECharts – 大数据时代必备的数据图表

ECharts基于 Canvas 的纯 Javascript 实现的图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。特色功能混搭混搭的图表会更具表现力也更有趣味,ECharts提供的图表(共9类14种)支持任意混搭:折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、 饼图...

weixin_39691233的博客 742

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NiceFish数据可视化:ECharts图表组件在Angular项目中的集成指南

数据可视化是现代Web应用开发中不可或缺的一环,而NiceFish项目通过集成ECharts图表库,为Angular开发者提供了一个完整的**数据可视化解决方案**。本文将详细介绍如何在NiceFish项目中轻松实现**ECharts图表集成**,帮助新手快速掌握**Angular数据可视化**的核心技术。 NiceFish是一个展示前后端分离开发模式的系列项目,它通过**ECharts图表组件

gitblog_00739的博客 983

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

FastBee数据可视化实战:ECharts大屏监控界面开发

FastBee是一款简单易用的开源物联网平台,可用于搭建物联网平台以及二次开发和学习,适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等多种场景。本文将详细介绍如何使用ECharts在FastBee平台上开发功能强大的数据可视化大屏监控界面。 ## 为什么选择ECharts进行物联网数据可视化? ECharts作为一款由百度开发的开源可视化库,凭借其丰富的图表类型、强大的交互能

gitblog_01195的博客 1054

echart 三维可视化地图_Echarts百度可视化图形库

ECharts一个使用 JavaScript实现的开源可视化库,可以流畅的运行在 PC和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。http://echarts.baidu.com (官网)Echarts 实例Echarts API(配置...

weixin_39828783的博客 1115

echarts散点图加趋势线_ECharts:百度开源的纯 Javascript 图表库

大数据时代,重新定义数据图表的时候到了ECharts(Enterprise Charts 商业产品图表库) 是基于Canvas的,纯Javascript 的图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。架构ECharts 是指 Enterprise Charts(商业产品图表库),提...

weixin_35306450的博客 331
上一篇: JavaWeb实战:从零搭建机票预订系统(附完整数据库设计)
下一篇: 嵌入式工程师必看:如何为高速SPI通信选择正确的电平转换方案(附实测数据)
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值