Vue3 词云

效果图:

html 复制代码
<template>
  <v-chart ref="vChartRef" :option="option" style="background-color: #000;"></v-chart>
</template>

<script setup lang="ts">
import { ref, reactive } from "vue";
import VChart from "vue-echarts";
import * as echarts from "echarts/core";
import { CanvasRenderer } from "echarts/renderers";
import { GridComponent } from "echarts/components";
import "echarts-wordcloud";
echarts.use([CanvasRenderer, GridComponent]);

const vChartRef = ref();

const chartData = ref<any>([
  {
    name: "矛盾调解",
    value: 500,
  },
  {
    name: "拖欠克扣工资",
    value: 300,
  },
  {
    name: "食品安全",
    value: 300,
  },
  {
    name: "街面秩序",
    value: 200,
  },
  {
    name: "涉法涉讼",
    value: 200,
  },
  {
    name: "施工噪音投诉",
    value: 100,
  },
  {
    name: "信访接待",
    value: 100,
  },
  {
    name: "社会治安",
    value: 100,
  },
  {
    name: "房屋交易",
    value: 50,
  },
  {
    name: "施工管理",
    value: 50,
  },
  {
    name: "日常维控",
    value: 20,
  },
]);

const option = reactive({
  backgroundColor: "rgba(0,0,0,0)",
  tooltip: {
    show: true,
    formatter: (params: any) => {
      return `${params.name}: ${params.value}`;
    },
  },
  series: [
    {
      type: "wordCloud",
      shape: "pentagon",
      left: "center",
      top: "center",
      width: "100%",
      height: "100%",
      right: null,
      bottom: null,
      sizeRange: [14, 31],
      rotationRange: [0, 0],
      rotationStep: 0,
      gridSize: 25,
      drawOutOfBound: false,
      layoutAnimation: true,
      emphasis: {
        focus: "none",
      },
      data: chartData.value,
      textStyle: {
        fontFamily: "AlibabaPuHuiTi_2_85_Bold",
        fontWeight: 600,
        color: () => {
          const colors = [
            "#029CD4FF",
            "#D54941FF",
            "#3B9330FF",
            "#F5BA18FF",
            "#A0DA12FF",
            "#E37318FF",
            "#8E56DDFF",
            "#2BA471FF",
            "#029CD499",
            "#D5494199",
            "#3B933099",
            "#F5BA1899",
            "#A0DA1299",
            "#E3731899",
            "#8E56DD99",
            "#2BA47199",
            "#029CD44D",
            "#D549414D",
            "#3B93304D",
            "#F5BA184D",
            "#A0DA124D",
            "#E373184D",
            "#8E56DD4D",
            "#2BA4714D",
          ];
          return colors[Math.floor(Math.random() * colors.length)];
        },
      },
    },
  ],
});
</script>
相关推荐
B站_计算机毕业设计之家4 天前
电影知识图谱推荐问答系统 | Python Django系统 Neo4j MySQL Echarts 协同过滤 大数据 人工智能 毕业设计源码(建议收藏)✅
人工智能·python·机器学习·django·毕业设计·echarts·知识图谱
南_山无梅落5 天前
从传统Web到API驱动:使用Django REST Framework重构智能合同审查系统
重构·django·vue·drf
PD我是你的真爱粉6 天前
API 请求封装(Axios + 拦截器 + 错误处理)
前端框架·vue
biyezuopinvip7 天前
基于Spring Boot的投资理财系统设计与实现(毕业论文)
java·spring boot·vue·毕业设计·论文·毕业论文·投资理财系统设计与实现
biyezuopinvip8 天前
基于Spring Boot的投资理财系统设计与实现(任务书)
java·spring boot·vue·毕业设计·论文·任务书·投资理财系统设计与实现
huohuopro8 天前
Vue3 Webview 转 Android 虚拟导航栏遮挡问题记录
android·vue
码界筑梦坊9 天前
332-基于XGBoost与SHAP的可穿戴设备亚健康风险识别系统
python·数据分析·flask·vue·毕业设计
上单带刀不带妹9 天前
【Axios 实战】网络图片地址转 File 对象,附跨域解决方案
开发语言·前端·javascript·vue
SuperEugene9 天前
前端模块化与 import/export入门:从「乱成一团」到「清晰可维护」
前端·javascript·面试·vue
~央千澈~10 天前
优雅草正版授权系统 - 优雅草科技开源2月20日正式发布
python·vue·php·授权验证系统