散点图是一种非常直观的数据可视化工具,能够帮助我们快速理解两个变量之间的关系。ECharts是一款强大的数据可视化库,支持多种图表类型,其中散点图制作尤为简单。本文将带你一步步学会使用ECharts制作散点图,并介绍一些交互技巧。

第一步:引入ECharts库

首先,你需要在你的HTML文件中引入ECharts库。可以通过以下两种方式:

1. 使用CDN引入

<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>

2. 下载ECharts库

你也可以下载ECharts库到本地,然后引入。

<script src="path/to/echarts.min.js"></script>

第二步:创建图表容器

在HTML文件中创建一个用于存放散点图的容器,并设置一个id。

<div id="main" style="width: 600px;height:400px;"></div>

第三步:初始化图表

在JavaScript代码中,使用echarts.init()方法初始化一个图表实例。

var myChart = echarts.init(document.getElementById('main'));

第四步:配置图表

接下来,你需要配置散点图的各项参数,包括标题、坐标轴、数据系列等。

var option = {
    title: {
        text: '散点图示例'
    },
    tooltip: {},
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'scatter',
        data: [[5, 20], [10, 30], [15, 40], [20, 50], [25, 60], [30, 70]]
    }]
};

在上面的代码中,我们设置了图表的标题、提示框、x轴、y轴和数据系列。x轴和y轴的数据是字符串类型,而数据系列中的数据是数值类型。

第五步:显示图表

最后,将配置好的选项赋值给图表实例的setOption方法。

myChart.setOption(option);

这样,一个简单的散点图就制作完成了。

交互技巧

1. 鼠标悬停提示

ECharts默认支持鼠标悬停在数据点上时显示提示框,你可以通过配置tooltip参数来自定义提示框的内容。

tooltip: {
    trigger: 'item',
    formatter: function (params) {
        return params.name + ': ' + params.value[1];
    }
}

2. 鼠标点击交互

你可以通过监听点击事件来实现鼠标点击交互,例如切换数据系列。

myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        var data = params.seriesName === '销量' ? series1.data : series2.data;
        var selectedData = data.filter(function (item, index) {
            return index === params.dataIndex;
        });
        selectedData.forEach(function (item) {
            myChart.dispatchAction({
                type: 'select',
                seriesIndex: 0,
                dataIndex: data.indexOf(item)
            });
        });
    }
});

3. 动态数据更新

你可以通过调用setOption方法动态更新图表数据。

// 假设你有一个新的数据数组
var newData = [[10, 50], [20, 60], [30, 70]];

// 更新数据
myChart.setOption({
    series: [{
        data: newData
    }]
});

通过以上步骤和技巧,你就可以轻松学会使用ECharts制作散点图了。希望这篇文章对你有所帮助!