目录

为了实现一个在线商场销售数据分析的ECharts应用,以下是详细的步骤指南

使用ECharts实现在线商场销售数据分析 安装ECharts库 确保你有Node.js和npm安装: npm install -g npm npm install echarts 创建HTML文件 新建一个HTML文件,包含必要的元标签和脚本: <!DOCTYPE html> <html> <head>在线商场销售数据分析</title> <style> .container { width: 120px; margin: 20px auto; padding: 20px; } .chart-container { display: flex; gap: 20px; flex-wrap: wrap; } </style> </head> <body> <div class="container"> <h1>在线商场销售数据分析</h1> <div class="chart-container"> <!-- 销售数量图表 --> <div id="salesVolumeChart"></div> <!-- 销售额图表 --> <div id="salesValueChart"></div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/echarts@latest/dist/echarts.min.js"...

使用ECharts实现在线商场销售数据分析

安装ECharts库

确保你有Node.js和npm安装:

npm install -g npm
npm install echarts

创建HTML文件

新建一个HTML文件,包含必要的元标签和脚本:

<!DOCTYPE html>
<html>
<head>在线商场销售数据分析</title>
    <style>
        .container {
            width: 120px;
            margin: 20px auto;
            padding: 20px;
        }
        .chart-container {
            display: flex;
            gap: 20px;
            flex-wrap: wrap;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>在线商场销售数据分析</h1>
        <div class="chart-container">
            <!-- 销售数量图表 -->
            <div id="salesVolumeChart"></div>
            <!-- 销售额图表 -->
            <div id="salesValueChart"></div>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/echarts@latest/dist/echarts.min.js"></script>
</body>
</html>

准备销售数据

创建一个包含多个商品的数据数组,每个商品包含多个时间点的销售数量和销售额:

// 假设数据如下(示例数据)
const salesData = [
    {
        id: '商品A',
        name: '手机',
        data: [
            { time: '2023-01', sales: 500, value: 800 },
            { time: '2023-02', sales: 700, value: 10500 },
            { time: '2023-03', sales: 600, value: 900 },
            { time: '2023-04', sales: 800, value: 12000 }
        ]
    },
    {
        id: '商品B',
        name: '平板',
        data: [
            { time: '2023-01', sales: 400, value: 700 },
            { time: '2023-02', sales: 600, value: 900 },
            { time: '2023-03', sales: 500, value: 800 },
            { time: '2023-04', sales: 300, value: 500 }
        ]
    }
];

初始化图表

在HTML文件中添加两个图表容器,分别对应销售数量和销售额:

<div id="salesVolumeChart"></div>
<div id="salesValueChart"></div>

配置图表样式

在<script>标签中添加以下代码,配置每个图表:

// 销售数量图表
const salesVolumeChart = echarts.init(document.getElementById('salesVolumeChart'));
// 销售额图表
const salesValueChart = echarts.init(document.getElementById('salesValueChart'));
// 销售数量图表配置
salesVolumeChart.config({ {
        text: '销售数量趋势'
    },
    tooltip: {
        formatter: function (value) {
            return `${value.toFixed()}件`;
        }
    },
    xAxis: {
        data: ['2023-01', '2023-02', '2023-03', '2023-04']
    },
    yAxis: {
        axisLabel: {
            formatter: function (value) {
                return `${value.toFixed()}件`;
            }
        }
    }
});
// 销售额图表配置
salesValueChart.config({ {
        text: '销售额趋势'
    },
    tooltip: {
        formatter: function (value) {
            return `${value.toFixed(2)}元`;
        }
    },
    xAxis: {
        data: ['2023-01', '2023-02', '2023-03', '2023-04']
    },
    yAxis: {
        axisLabel: {
            formatter: function (value) {
                return `${value.toFixed(2)}元`;
            }
        }
    }
});

添加数据到图表

根据数据源,逐个添加数据系列到每个图表中,这里假设数据已经在salesData中准备好:

// 销售数量图表
salesVolumeChart.data = [
    {
        name: '手机',
        data: salesData[].data.map(item => item.sales)
    },
    {
        name: '平板',
        data: salesData[1].data.map(item => item.sales)
    }
];
salesVolumeChart.update();
// 销售额图表
salesValueChart.data = [
    {
        name: '手机',
        data: salesData[].data.map(item => item.value)
    },
    {
        name: '平板',
        data: salesData[1].data.map(item => item.value)
    }
];
salesValueChart.update();

添加图例和样式

为了美化图表,添加图例并设置样式:

// 销售数量图表
salesVolumeChart.option({
    legend: {
        data: ['手机', '平板'],
        formatter: function (name) {
            return '<span style="font-weight:bold;">' + name + '</span>';
        }
    },
    color: ['#2ecc71', '#e74c3c']
});
// 销售额图表
salesValueChart.option({
    legend: {
        data: ['手机', '平板'],
        formatter: function (name) {
            return '<span style="font-weight:bold;">' + name + '</span>';
        }
    },
    color: ['#9b59b6', '#f1c40f']
});

添加交互功能

配置点击事件,显示单品信息:

// 销售数量图表
salesVolumeChart.on('click', function (event) {
    const series = event.series;
    const data = series.data[series.index];
    const point = data[data.length - 1]; // 假设点击的是最后一个数据点
    alert(`单品: ${series.name}\n销量: ${point.value}件`);
});
// 销售额图表
salesValueChart.on('click', function (event) {
    const series = event.series;
    const data = series.data[series.index];
    const point = data[data.length - 1]; // 假设点击的是最后一个数据点
    alert(`单品: ${series.name}\n销售额: ${point.value}元`);
});

数据预处理(示例)

确保数据正确整理:

// 减少显示的时间点数量
const timePoints = ['2023-01', '2023-02', '2023-03', '2023-04'];
const processedData = salesData.map(product => {
    const aggregatedData = product.data.reduce((acc, item, index) => {
        if (index < timePoints.length) {
            acc[timePoints[index]] = {
                sales: acc[timePoints[index]] ? acc[timePoints[index]].sales + item.sales : item.sales,
                value: acc[timePoints[index]] ? acc[timePoints[index]].value + item.value : item.value
            };
        }
        return acc;
    }, {});
    return {
        name: product.name,
        data: Object.entries(aggregatedData).map(([time, item]) => ({
            time,
            sales: item.sales,
            value: item.value
        }))
    };
});
// 更新图表数据
salesVolumeChart.data = processedData.map(product => ({
    name: product.name,
    data: product.data.map(item => item.sales)
}));
salesValueChart.data = processedData.map(product => ({
    name: product.name,
    data: product.data.map(item => item.value)
}));
salesVolumeChart.update();
salesValueChart.update();

CSS样式调整

为了更好的展示效果,添加CSS样式:

.echarts-container {
    background: #f4f4f4;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(,,,.1);
}
.echarts-graph {
    width: 100%;
    height: 300px;
}

完整代码汇总

将所有代码整合到HTML文件中:

<!DOCTYPE html>
<html>
<head>在线商场销售数据分析</title>
    <style>
        .container {
            width: 120px;
            margin: 20px auto;
            padding: 20px;
        }
        .chart-container {
            display: flex;
            gap: 20px;
            flex-wrap: wrap;
        }
        .echarts-container {
            background: #f4f4

为了实现一个在线商场销售数据分析的ECharts应用,以下是详细的步骤指南

扫描二维码推送至手机访问。

本文转载自互联网,如有侵权,联系删除。

本文链接:https://www.shandian-vpn.com/post/14623.html

扫描二维码手机访问

文章目录
网站地图