前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >福建省大数据职业技能大赛电商数据可视化-json文件数据源

福建省大数据职业技能大赛电商数据可视化-json文件数据源

原创
作者头像
弟大翻着洗
修改2024-08-31 11:37:28
850
修改2024-08-31 11:37:28
举报
文章被收录于专栏:练手小项目

介绍

此项目基于vue3,结合echarts获取接口数据进行数据可视化

使用Postman接口测试工具,来获取相关数据,导出为json格式的数据作为可视化数据源

任务一:用柱状图展示消费额最高的省份

编写Vue工程代码,根据接口,用柱状图展示2020年消费额最高的5个省份,同时将用于图表展示的数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from '../../echarts.min.js';
import data from '../../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各省份总销售额
            var provinceData = downlog.reduce((acc, curr) => {
                if (!acc[curr.provinceName]) {
                    acc[curr.provinceName] = {
                        provincetotalRevenue: 0
                    };
                }
                acc[curr.provinceName].provincetotalRevenue += curr.finalTotalAmount;
                return acc;
            }, {});
            // 将 provinceData 转换为数组
            var provinceArray = Object.entries(provinceData).map(([key, value]) => ({
                provinceName:
                    key, finalTotalAmount: value.provincetotalRevenue
            }));
            // 获取前五
            var Top5provincedata = provinceArray.sort((a, b) => b.finalTotalAmount -
                a.finalTotalAmount).slice(0, 5)
            // 获取数据
            var province = Top5provincedata.map(item => item.provinceName).slice(0, 5)
            var totalamount = Top5provincedata.map(item =>
                item.finalTotalAmount).slice(0, 5)
            // 打印结果
            console.log("省份", province)
            console.log("销售额", totalamount)
            let option = {
                xAxis: { data: province, type: 'category' },
                yAxis: { type: 'value' },
                series: {
                    data: totalamount,
                    type: 'bar',
                    label: {
                        show: true,
                        position: 'top'
                    }
                },
                title: {
                    text: "2020年消费额最高的5个省份",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务二:用饼状图展示各地区消费能力

编写Vue工程代码,根据接口,用饼状图展示2020年各地区的消费总额占比,同时将用于图表展示的数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算地区消费额
            const regiondata = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = {
                        totalRevence: 0
                    }
                }
                acc[curr.regionName].totalRevence += curr.finalTotalAmount
                return acc;
            }, {});
            // 转换数据类型
            var result = Object.entries(regiondata).map(([name, value]) => ({
                value:
                    value.totalRevence, name
            }))
            var resultdata = {}
            for (let i = 0; i < result.length; i++) {
                var test = result[i].name + " => " + result[i].value
                resultdata[i] = test;
            }
            console.log(resultdata)
            let option = {
                series: [{
                    type: "pie",
                    data: result,
                    label: {
                        show: true,
                        position: "outside",
                    }
                }],
                title: {
                    text: "2020年各地区的消费总额占比",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务三:用散点图展示每年上架商品数量的变化

编写Vue工程代码,根据接口,用基础散点图展示每年上架商品数量的变化情况,同时将用于图表展示

的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图

并粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response02.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let productData = data.data;
            // 计算每年上架商品数量
            const productCountByYear = productData.reduce((acc, curr) => {
                if (!acc[curr.year]) {
                    acc[curr.year] = 0;
                }
                acc[curr.year]++;
                return acc;
            }, {});
            // 将 productCountByYear 转换为数组
            const productCountArray = Object.entries(productCountByYear).map(([year,
                count]) => ({ year, count }));
            // 获取数据
            var years = productCountArray.map(item => item.year);
            var counts = productCountArray.map(item => item.count);
            // 打印结果
            console.log("年份", years)
            console.log("数量", counts)
            let option = {
                xAxis: { data: years, type: 'category' },
                yAxis: { type: 'value' },
                series: [{
                    data: counts,
                    type: 'scatter',
                    label: { show: true, position: 'top' }
                }],
                title: {
                    text: "每年上架商品数量的变化",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务四:用条形图展示平均消费额最高的省份

编写Vue工程代码,根据接口,用条形图展示2020年平均消费额(四舍五入保留两位小数)最高的5个

省份,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器

console打印结果分别截图并粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各省份总销售额
            var provinceData = downlog.reduce((acc, curr) => {
                if (!acc[curr.provinceName]) {
                    acc[curr.provinceName] = {
                        provincetotalRevenue: 0,
                        orderCount: 0
                    };
                }
                acc[curr.provinceName].provincetotalRevenue += curr.finalTotalAmount;
                acc[curr.provinceName].orderCount += 1;
                return acc;
            }, {});
            // 将 provinceData 转换为数组
            var provinceArray = Object.entries(provinceData).map(([key, value]) => ({
                provinceName: key,
                totalRevenue: value.provincetotalRevenue,
                orderCount: value.orderCount
            }));
            // 计算平均消费额
            provinceArray.forEach(item => {
                item.avgRevenue = item.totalRevenue / item.orderCount;
            });
            // 获取前五省份数据
            var Top5provincedata = provinceArray.sort((a, b) => b.avgRevenue -
                a.avgRevenue).slice(0, 5);
            var Top5provinceName = Top5provincedata.map(item => item.provinceName);
            var avgprovincedata = Top5provincedata.map(item =>
                item.avgRevenue.toFixed(2));
            // 打印结果
            console.log("省份", Top5provinceName)
            console.log("消费额", avgprovincedata)
            let option = {
                xAxis: { type: 'value' },
                yAxis: { data: Top5provinceName, type: 'category' },
                series: {
                    data: avgprovincedata, type: 'bar', label: {
                        show: true,
                        position: 'right'
                    }
                },
                title: {
                    text: "2020年平均消费额最高的5个省份",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务五:用折柱混合图展示省份平均消费额和地区平均消费额

编写Vue工程代码,根据接口,用折柱混合图展示2020年各省份平均消费额(四舍五入保留两位小数)

和地区平均消费额(四舍五入保留两位小数)的对比情况,柱状图展示平均消费额最高的5个省份,折线

图展示这5个省所在的地区的平均消费额变化,同时将用于图表展示的数据结构在浏览器的console中进

行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算省份总销售额
            var avgprovinceRevenue = downlog.reduce((acc, item) => {
                if (acc[item.provinceName]) {
                    acc[item.provinceName].totalRevenue += item.finalTotalAmount;
                    acc[item.provinceName].orderCount += 1;
                } else {
                    acc[item.provinceName] = {
                        totalRevenue: item.finalTotalAmount,
                        orderCount: 1
                    };
                }
                return acc;
            }, {});
            // 计算平均销售额
            var avgprovinceData = Object.entries(avgprovinceRevenue).map(entry => ({
                provinceName: entry[0],
                avgRevenue: (entry[1].totalRevenue / entry[1].orderCount).toFixed(2)
            }));
            // 对平均销售额进行排序
            var sortedAvgProvinceData = avgprovinceData.sort((a, b) => b.avgRevenue -
                a.avgRevenue).slice(0, 5);
            var Top5provinceArr = sortedAvgProvinceData.map(entry =>
                entry.provinceName);
            var resultavgprovinceRevenue = sortedAvgProvinceData.map(entry =>
                entry.avgRevenue);
            // 计算各地区平均销售额
            var regionData = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = {
                        totalRevenue: 0,
                        orderCount: 0
                    };
                }
                acc[curr.regionName].totalRevenue += curr.finalTotalAmount;
                acc[curr.regionName].orderCount += 1;
                return acc;
            }, {});
            // 获取地区
            var regionArr = Top5provinceArr.map(provinceName => {
                var regionName = downlog.find(item => item.provinceName ===
                    provinceName).regionName;
                return regionName;
            });
            // 计算地区平均值
            var avgregionRevenue = regionArr.map(regionName => {
                var avg = regionData[regionName].totalRevenue /
                    regionData[regionName].orderCount;
                return avg.toFixed(2);
            });
            // 打印结果
            console.log("省份", Top5provinceArr)
            console.log("省份消费额", resultavgprovinceRevenue)
            console.log("地区", regionArr)
            console.log("地区消费额", avgregionRevenue)
            let option = {
                xAxis: [
                    {
                        type: 'category', name: "省份", data: Top5provinceArr, position:
                            "bottom"
                    },
                    { type: 'category', name: "地区", data: regionArr }
                ],
                yAxis: { type: 'value' },
                series: [
                    {
                        name: '省份平均消费额', data: resultavgprovinceRevenue, type: 'bar',
                        label: {
                            show: true, position: 'top'
                        }
                    },
                    {
                        name: '地区平均消费额', data: avgregionRevenue, type: 'line', label: {
                            show: true, position: 'top'
                        }
                    }
                ],
                title: {
                    text: "省份平均消费额和地区平均消费额",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    }
}
</script>

结果展示

任务六:用折线图展示每年上架商品数量的变化

编写Vue工程代码,根据接口,用折线图展示每年上架商品数量的变化情况,同时将用于图表展示的数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response02.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let productData = data.data;
            // 计算每年上架商品数量
            const productCountByYear = productData.reduce((acc, curr) => {
                if (!acc[curr.year]) {
                    acc[curr.year] = 0;
                }
                acc[curr.year]++;
                return acc;
            }, {});
            // 将 productCountByYear 转换为数组
            const productCountArray = Object.entries(productCountByYear).map(([year,
                count]) => ({ year, count }));
            // 获取数据
            var years = productCountArray.map(item => item.year);
            var counts = productCountArray.map(item => item.count);
            // 打印结果
            console.log("年份", years)
            console.log("数量", counts)
            let option = {
                xAxis: { data: years, type: 'category' },
                yAxis: { type: 'value' },
                series: [{
                    data: counts,
                    type: 'line',
                    label: { show: true, position: 'top' }
                }],
                title: {
                    text: "每年上架商品数量的变化",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务七:用条形图展示消费额最高的地区

编写Vue工程代码,根据接口,用条形图展示2020年消费额最高的5个地区,同时将用于图表展示的数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 获取地区总消费额
            var regionTotalRevenue = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = {
                        totalrevenue: 0,
                        ordercount: 0
                    }
                }
                acc[curr.regionName].totalrevenue += curr.finalTotalAmount,
                    acc[curr.regionName].ordercount++
                return acc
            }, {})
            // 转换数据类型
            var result = Object.entries(regionTotalRevenue).map(([key, value]) =>
            ({
                regionName: key,
                finalTotalAmount: value.totalrevenue
            }))
            // 获取前五
            var Top5regiondata = result.sort((a, b) => b.finalTotalAmount -
                a.finalTotalAmount).slice(0, 5)
            // 获取数据
            var region = Top5regiondata.map(item => item.regionName)
            var totalamount = Top5regiondata.map(item => item.finalTotalAmount)
            // 打印结果
            console.log("地区", region)
            console.log("消费额", totalamount)
            let option = {
                yAxis: { data: region, type: 'category' },
                xAxis: { type: 'value' },
                series: {
                    data: totalamount,
                    type: 'bar',
                    label: {
                        show: true,
                        position: 'right'
                    }
                },
                title: {
                    text: "2020年消费额最高的5个地区",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务八:用散点图展示省份平均消费额

编写Vue工程代码,根据接口,用基础散点图展示2020年最高10个省份平均消费额(四舍五入保留两位

小数),同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览

器console打印结果分别截图并粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各省份总销售额
            var provinceData = downlog.reduce((acc, curr) => {
                if (!acc[curr.provinceName]) {
                    acc[curr.provinceName] = {
                        provincetotalOrders: 0,
                        provincetotalRevenue: 0
                    };
                }
                acc[curr.provinceName].provincetotalOrders++; // 每次订单累加1
                acc[curr.provinceName].provincetotalRevenue += curr.finalTotalAmount;
                return acc;
            }, {});
            // 将 provinceData 转换为数组
            var provinceArr = Object.entries(provinceData).map(([key, value]) => ({
                provinceName: key,
                finalTotalAmount: value.provincetotalRevenue,
                totalOrders: value.provincetotalOrders
            }));
            // 计算平均销售额并按照平均销售额排序
            var provinceAvgRevenue = provinceArr.map(item => ({
                provinceName: item.provinceName,
                avgRevenue: (item.finalTotalAmount / item.totalOrders).toFixed(2)
            })).sort((a, b) => b.avgRevenue - a.avgRevenue).slice(0, 10);
            // 获取前十个省份的名称和平均销售额
            var top10ProvinceNames = provinceAvgRevenue.map(item =>
                item.provinceName);
            var top10AvgRevenue = provinceAvgRevenue.map(item => item.avgRevenue);
            // 打印结果
            console.log("省份", top10ProvinceNames)
            console.log("消费额", top10AvgRevenue)
            // 设置echarts图表的选项
            let option = {
                xAxis: { type: 'category', data: top10ProvinceNames },
                yAxis: {
                    type: 'value'
                },
                series: [{
                    type: "scatter", symbolSize: 20,
                    data: top10AvgRevenue.map((revenue, index) =>
                        [top10ProvinceNames[index], revenue])
                }],
                title: {
                    text: "2020年最高10个省份平均消费额",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    }
}
</script>

结果展示

任务九:用柱状图展示消费额最高的地区

编写Vue工程代码,根据接口,用柱状图展示2020年消费额最高的5个地区,同时将用于图表展示的数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算地区消费额
            const regiondata = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = {
                        totalRevence: 0
                    }
                }
                acc[curr.regionName].totalRevence += curr.finalTotalAmount
                return acc;
            }, {});
            // 将 regiondata 转换为数组
            const regionArray = Object.entries(regiondata).map(([region, data]) => ({
                region, totalRevence: data.totalRevence
            }));
            // 获取前五消费额地区
            var Top5region = regionArray.sort((a, b) => b.totalRevence -
                a.totalRevence).slice(0, 5)
            // 获取数据
            var province = Top5region.map(item => item.region)
            var revence = Top5region.map(item => item.totalRevence)
            // 打印结果
            console.log("省份", province)
            console.log("消费额", revence)
            let option = {
                xAxis: { data: province, type: 'category' },
                yAxis: { type: 'value' },
                series: {
                    data: revence,
                    type: 'bar',
                    label: { show: true, position: 'top' }
                },
                title: {
                    text: "2020年消费额最高的5个地区",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务十:用条形图展示平均消费额最高的地区

编写Vue工程代码,根据接口,用条形图展示2020年平均消费额(四舍五入保留两位小数)最高的5个

地区,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器

console打印结果分别截图并粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算地区消费额
            const regiondata = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = {
                        totalRevence: 0,
                        orderCount: 0
                    }
                }
                acc[curr.regionName].totalRevence += curr.finalTotalAmount
                acc[curr.regionName].orderCount += 1
                return acc;
            }, {});
            // 将 regiondata 转换为数组
            const regionArray = Object.entries(regiondata).map(([region, data]) => ({
                region,
                totalRevence: data.totalRevence,
                orderCount: data.orderCount
            }));
            // 计算平均消费额
            regionArray.forEach(item => {
                item.avgRevence = (item.totalRevence / item.orderCount).toFixed(2);
            });
            // 获取前五消费额地区
            var Top5region = regionArray.sort((a, b) => b.avgRevence -
                a.avgRevence).slice(0, 5)
            // 获取数据
            var regionNames = Top5region.map(item => item.region)
            var avgRevenceData = Top5region.map(item => item.avgRevence)
            // 打印结果
            console.log("地区", regionNames)
            console.log("消费额", avgRevenceData)
            let option = {
                yAxis: { data: regionNames, type: 'category' },
                xAxis: { type: 'value' },
                series: {
                    data: avgRevenceData,
                    type: 'bar',
                    label: { show: true, position: 'right' }
                },
                title: {
                    text: "2020年平均消费额最高的5个地区",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务十一:用柱状图展示消费额最高的用户

编写Vue工程代码,根据接口,用柱状图展示2020年消费额最高的5个用户,同时将用于图表展示的数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById('main'));
            let downlog = data.data;
            // 对用户进行统计
            let userMap = downlog.reduce((map, item) => {
                if (!item.userName) {
                    // 用户名为null,不进行处理
                    return map;
                }
                if (map[item.userName]) {
                    // 如果已经存在该用户,则将消费总额叠加
                    map[item.userName] += item.finalTotalAmount;
                } else {
                    // 如果不存在该用户,则初始化用户的消费总额
                    map[item.userName] = item.finalTotalAmount;
                }
                return map;
            }, {});
            // 将用户消费总额转换成数组
            let userList = Object.entries(userMap).map(([key, value]) =>
            ({
                userName: key,
                finalTotalAmount: value
            }));
            // 将用户按照消费总额从大到小排序
            let top5Users = userList.sort((a, b) => b.finalTotalAmount -
                a.finalTotalAmount).slice(0, 5);
            // 获取数据
            let userName = top5Users.map(item => item.userName);
            let finalTotalAmount = top5Users.map(item => item.finalTotalAmount);
            // 打印结果
            console.log("用户", userName)
            console.log("消费额", finalTotalAmount)
            let option = {
                xAxis: { data: userName, type: 'category' },
                yAxis: { type: 'value' },
                series: {
                    data: finalTotalAmount,
                    type: 'bar',
                    label: { show: true, position: 'top' },
                },
                title: {
                    text: "2020年消费额最高的5个用户",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务十二:用玫瑰图展示各地区消费能力

编写Vue工程代码,根据接口,用基础南丁格尔玫瑰图展示2020年各地区的消费总额占比,同时将用于

图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果

分别截图并粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算地区消费额
            const regiondata = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = {
                        totalRevence: 0
                    }
                }
                acc[curr.regionName].totalRevence += curr.finalTotalAmount
                return acc;
            }, {});
            // 转换数据类型
            var result = Object.entries(regiondata).map(([name, value]) => ({
                value:
                    value.totalRevence, name
            }))
            var resultdata = {}
            for (let i = 0; i < result.length; i++) {
                var test = result[i].name + " => " + result[i].value
                resultdata[i] = test;
            }
            console.log(resultdata)
            let option = {
                series: [{
                    type: "pie",
                    data: result,
                    label: {
                        show: true,
                        position: "outside",
                    },
                    roseType: 'area'
                }],
                title: {
                    text: "2020年各地区的消费总额占比",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务十三:用条形图展示消费总额最高的省份

编写Vue工程代码,根据接口,用条形图展示2020年消费总额最高的10个省份,同时将用于图表展示的

数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并

粘贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>

<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各省份总销售额
            var provinceData = downlog.reduce((acc, curr) => {
                if (!acc[curr.provinceName]) {
                    acc[curr.provinceName] = {
                        provincetotalRevenue: 0
                    };
                }
                acc[curr.provinceName].provincetotalRevenue += curr.finalTotalAmount;
                return acc;
            }, {});
            // 将 provinceData 转换为数组
            var provinceArray = Object.entries(provinceData).map(([key, value]) => ({
                provinceName: key, finalTotalAmount: value.provincetotalRevenue
            }));
            // 获取前五
            var Top5provincedata = provinceArray.sort((a, b) => b.finalTotalAmount -
                a.finalTotalAmount).slice(0, 10)
            // 获取数据
            var province = Top5provincedata.map(item => item.provinceName).slice(0,
                10)
            var totalamount = Top5provincedata.map(item =>
                item.finalTotalAmount).slice(0, 10)
            // 打印结果
            console.log("省份", province)
            console.log("消费额", totalamount)
            let option = {
                yAxis: { data: province, type: 'category' },
                xAxis: { type: 'value' },
                series: {
                    data: totalamount,
                    type: 'bar',
                    label: {
                        show: true,
                        position: 'right'
                    }
                },
                title: {
                    text: "2020年消费总额最高的10个省份",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务十四:用柱状图展示消费额最低的省份

编写Vue工程代码,根据接口,用柱状图展示2020年消费额最低的5个省份,同时将用于图表展示的 数

据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并 粘

贴至对应报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各省份总销售额
            var provinceData = downlog.reduce((acc, curr) => {
                if (!acc[curr.provinceName]) {
                    acc[curr.provinceName] = {
                        provincetotalRevenue: 0
                    };
                }
                acc[curr.provinceName].provincetotalRevenue += curr.finalTotalAmount;
                return acc;
            }, {});
            // 将 provinceData 转换为数组
            var provinceArray = Object.entries(provinceData).map(([key, value]) => ({
                provinceName: key, finalTotalAmount: value.provincetotalRevenue
            }));
            // 获取前五
            var Top5provincedata = provinceArray.sort((a, b) => a.finalTotalAmount -
                b.finalTotalAmount).slice(0, 5)
            // 获取数据
            var province = Top5provincedata.map(item => item.provinceName).slice(0, 5)
            var totalamount = Top5provincedata.map(item =>
                item.finalTotalAmount).slice(0, 5)
            // 打印结果
            console.log("省份", province)
            console.log("消费额", totalamount)
            let option = {
                xAxis: { data: province, type: 'category' },
                yAxis: { type: 'value' },
                series: {
                    data: totalamount,
                    type: 'bar',
                    label: {
                        show: true,
                        position: 'top'
                    }
                },
                title: {
                    text: "2020年消费额最低的5个省份",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
</script>

结果展示

任务十五:用柱状图展示各省份消费额的中位数

编写Vue工程代码,根据接口,用柱状图展示2020年部分省份所有订单消费额的中位数(前10省 份,降

序排列,若有小数则四舍五入保留两位),同时将用于图表展示的数据结构在浏览器的console中 进行

打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴报告中。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各省份销售额数组
            var provinceData = downlog.reduce((acc, curr) => {
                if (!acc[curr.provinceName]) {
                    acc[curr.provinceName] = [];
                }
                acc[curr.provinceName].push(curr.finalTotalAmount);
                return acc;
            }, {});
            // 计算各省份销售额中位数
            var provinceMedian = Object.entries(provinceData).map(([key, value]) => ({
                provinceName: key,
                medianTotalAmount: calculateMedian(value)
            }));
            // 按销售额中位数进行排序
            provinceMedian.sort((a, b) => b.medianTotalAmount - a.medianTotalAmount);
            // 获取前十
            var Top5provincedata = provinceMedian.slice(0, 10);
            // 获取数据
            var province = Top5provincedata.map(item => item.provinceName).slice(0,
                10);
            var medianTotalAmount = Top5provincedata.map(item =>
                item.medianTotalAmount).slice(0, 10);
            // 打印结果
            console.log("省份", province)
            console.log("中位数", medianTotalAmount)
            let option = {
                xAxis: { data: province, type: 'category' },
                yAxis: { type: 'value' },
                series: {
                    data: medianTotalAmount,
                    type: 'bar',
                    label: {
                        show: true,
                        position: 'top'
                    }
                },
                title: {
                    text: "2020年部分省份所有订单消费额的中位数",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
// 计算中位数
function calculateMedian(data) {
    const sortedData = data.sort((a, b) => b - a);
    const len = sortedData.length;
    if (len % 2 === 1) {
        return sortedData[Math.floor(len / 2)];
    } else {
        const mid = len / 2;
        return (sortedData[mid - 1] + sortedData[mid]) / 2;
    }
}
</script>

结果展示

任务十六:用柱状图展示各地区消费额的中位数

编写Vue工程代码,根据接口,用柱状图展示2020年各地区所有订单消费额的中位数(降序排列, 若有

小数则四舍五入保留两位),同时将用于图表展示的数据结构在浏览器的console中进行打印输出, 将

图表可视化结果和浏览器console打印结果分别截图并粘贴至客户端桌面【Release\任务E提交结

果.docx】中对应的任务序号下。

代码语言:javascript
复制
<template>
    <div id="main" style="width: 1000px; height: 800px;"></div>
</template>
<script>
import { onMounted } from 'vue';
import * as echarts from 'echarts';
import data from '../response01.json';
export default {
    setup() {
        onMounted(() => {
            let Mychart = echarts.init(document.getElementById("main"));
            let downlog = data.data;
            // 计算各地区消费额数组
            var regionData = downlog.reduce((acc, curr) => {
                if (!acc[curr.regionName]) {
                    acc[curr.regionName] = [];
                }
                acc[curr.regionName].push(curr.finalTotalAmount);
                return acc;
            }, {});
            // 计算各地区销售额中位数
            var regionMedian = Object.entries(regionData).map(([key, value]) => ({
                regionName: key,
                medianTotalAmount: calculateMedian(value)
            }));
            // 按销售额中位数进行排序
            regionMedian.sort((a, b) => b.medianTotalAmount - a.medianTotalAmount);
            // 获取数据
            var region = regionMedian.map(item => item.regionName)
            var medianTotalAmount = regionMedian.map(item => item.medianTotalAmount)
            // 打印结果
            console.log("地区", region)
            console.log("中位数", medianTotalAmount)
            let option = {
                xAxis: { data: region, type: 'category' },
                yAxis: { type: 'value' },
                series: {
                    data: medianTotalAmount,
                    type: 'bar',
                    label: {
                        show: true,
                        position: 'top'
                    }
                },
                title: {
                    text: "2020年部分地区所有订单消费额的中位数",
                    x: "center",
                    textStyle: {
                        fontSize: 30
                    }
                }
            };
            Mychart.setOption(option);
        });
    },
};
// 计算中位数
function calculateMedian(data) {
    const sortedData = data.sort((a, b) => b - a);
    const len = sortedData.length;
    if (len % 2 === 1) {
        return sortedData[Math.floor(len / 2)];
    } else {
        const mid = len / 2;
        return (sortedData[mid - 1] + sortedData[mid]) / 2;
    }
}
</script>

结果展示

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 任务一:用柱状图展示消费额最高的省份
  • 任务二:用饼状图展示各地区消费能力
  • 任务三:用散点图展示每年上架商品数量的变化
  • 任务四:用条形图展示平均消费额最高的省份
  • 任务五:用折柱混合图展示省份平均消费额和地区平均消费额
  • 任务六:用折线图展示每年上架商品数量的变化
  • 任务七:用条形图展示消费额最高的地区
  • 任务八:用散点图展示省份平均消费额
  • 任务九:用柱状图展示消费额最高的地区
  • 任务十:用条形图展示平均消费额最高的地区
  • 任务十一:用柱状图展示消费额最高的用户
  • 任务十二:用玫瑰图展示各地区消费能力
  • 任务十三:用条形图展示消费总额最高的省份
  • 任务十四:用柱状图展示消费额最低的省份
  • 任务十五:用柱状图展示各省份消费额的中位数
  • 任务十六:用柱状图展示各地区消费额的中位数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档