VUE整合Echarts实现简单的数据可视化




<template>
  <div>
    <el-row :gutter="20">
      <el-col :span="12">
        <el-card class="box-card">
          <div slot="header" class="clearfix">
            <span>用户来源</span>
          </div>
          <div ref="sourceChart" style="height: 300px;"></div>
        </el-card>
      </el-col>
      <el-col :span="12">
        <el-card class="box-card">
          <div slot="header" class="clearfix">
            <span>用户分布</span>
          </div>
          <div ref="distributionChart" style="height: 300px;"></div>
        </el-card>
      </el-col>
    </el-row>
  </div>
</template>
 
<script>
import * as echarts from 'echarts';
 
export default {
  name: 'UserAnalysis',
  data() {
    return {
      sourceData: {
        legend: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'],
        series: [33, 22, 33, 55, 66]
      },
      distributionData: {
        legend: ['桌面', '移动', '平板'],
        series: [33, 22, 44]
      }
    };
  },
  mounted() {
    this.initCharts();
  },
  methods: {
    initCharts() {
      const sourceChart = echarts.init(this.$refs.sourceChart);
      const distributionChart = echarts.init(this.$refs.distributionChart);
 
      const option = {
        color: ['#5470C6', '#91CC75', '#FAC858', '#EE6666', '#73C0DE'],
        series: [
          {
            name: '访问来源',
            type: 'pie',
            radius: '55%',
            data: this.sourceData.series.map((value, index) => ({ value, name: this.sourceData.legend[index] }))
          }
        ]
      };
 
      sourceChart.setOption(option);
 
      const distributionOption = {
        color: ['#5470C6', '#91CC75', '#FAC858'],
        series: [
          {
            name: '设备分布',
            type: 'pie',
            radius: '55%',
            data: this.distributionData.series.map((value, index) => ({ value, name: this.distributionData.legend[index] }))
          }
        ]
      };
 
      distributionChart.setOption(distributionOption);
    }
  }
};
</script>
 
<style scoped>
.box-card {
  margin-bottom: 20px;
}
</style>

这个代码实例使用Vue和Element UI来构建用户界面,并通过ECharts绘制图表。在data函数中定义了两组用于ECharts图表的数据,在mounted钩子中调用initCharts方法来初始化图表。initCharts方法中使用ECharts的实例方法init来在对应的DOM元素上初始化图表,并设置相应的配置项。这个例子展示了如何在Vue项目中整合ECharts,并简单地展示了两个饼图的绘制。

最后修改于:2024年08月13日 09:03

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日