图表类可视化开发采坑记录之旅3

news2025/7/14 4:50:48

如图所示的扇形图样式改造:

 

 

开发框架:

基于vue2,echarts5.0.0

基于组件:

 html代码:

<div class="showCanvas">
   <div id="midError"></div>
</div>

css代码:

.showCanvas{
  width:100%;
  #midError{
    width: 100%;
    height: 430px;
  }
}

js代码:

    // 扇形图初始化
    initEcharts () {
      var myChart = this.$echarts.init(document.getElementById('midError'))
      var option
      option = {
        tooltip: {
          trigger: 'item',
          backgroundColor: 'rgba(0,0,0,0.6)', // 设置背景图片 rgba格式
          borderWidth: '0', // 边框宽度设置1
          textStyle: {
            color: '#FFFFFF' // 设置文字颜色
          }
        },
        textStyle: {
          color: 'rgb(255,255,255,0.6)'
        },
        legend: {
          top: '10%',
          icon: 'circle',
          orient: 'vertical',
          left: 'left',
          textStyle: {
            color: 'rgb(255,255,255,0.6)'
          }
        },
        color: [
          '#4375DA', '#44D7B6', '#62F4FF'
        ],
        series: [
          {
            name: '中间件故障统计',
            type: 'pie',
            center: ['50%', '60%'],
            radius: '50%',
            data: [
              { value: 10, name: '中间件离线' },
              { value: 20, name: '中间件导入数据失败' },
              { value: 21, name: '中间件获取数据失败' }
            ],
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            },
            label: {
              position: 'center',
              normal: {
                show: true,
                fontSize: 12,
                color: 'rgba(255,255,255,0.82)', // 设置文字颜色
                lineHeight: 18,
                extraCssText: 'width:60px; white-space:pre-wrap',
                // 扇形图需求文字截断对齐
                formatter: (e) => {
                  let newStr = ''
                  let start = 0// 开始截取位置
                  let end = 0// 截取结束位置
                  const namelen = e.name.length // 每个内容名称的长度
                  const maxname = 5// 每行显示的最大长度
                  const newrow = Math.ceil(namelen / maxname)// 显示行数
                  if (namelen > maxname) { // 如果名称长度大于每行最大显示长度,则
                    for (let i = 0; i < newrow; i++) { // 循环行数
                      let old = ''// 每次截取的字符
                      start = i * maxname// 截取的起点
                      end = start + maxname// 截取的终点
                      if (i === newrow - 1) { // 如果是最后一行
                        old = e.name.substring(start)
                      } else {
                        old = e.name.substring(start, end) + '\n'// 截取内容加换行
                      }
                      newStr += old// 拼接字符串
                    }
                  } else { // 否则不变显示
                    newStr = e.name
                  }
                  return newStr + '\n' + e.value
                }
              }
            }
          }
        ]
      }

      option && myChart.setOption(option)
    },

注意浏览器缩放大小时,响应式改变:

mounted () {
    this.initEcharts()

    let myChart = this.$echarts.init(document.getElementById('midError'))
    window.onresize = function () {
      myChart.resize()
    }
  },

难点或要点:

1.echarts引入方式,通过设置id的区域给宽高,dom获取,再init,最后setOption;

2.$echarts的全局设置:

import * as echarts from 'echarts' // 引入Echarts,5.0.0设置方式
// import echarts from 'echarts' // 引入Echarts,4.9.0设置方式
Vue.prototype.$echarts = echarts // 定义为全局变量

3.window.onresize时,调用resize()方法重绘;

4.echartsAPI的熟悉:

tooltip:鼠标感应显示的透明背景设置;

legend:图例样式设置;

color:扇形用色的设置;

series:返回数组,设置数据和显示样式

其中,让扇形更具立体感觉:

 emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            },

label:线指示说明部分设置;

其中,文字换行的方法:

// 扇形图需求文字截断对齐
                formatter: (e) => {
                  let newStr = ''
                  let start = 0// 开始截取位置
                  let end = 0// 截取结束位置
                  const namelen = e.name.length // 每个内容名称的长度
                  const maxname = 5// 每行显示的最大长度
                  const newrow = Math.ceil(namelen / maxname)// 显示行数
                  if (namelen > maxname) { // 如果名称长度大于每行最大显示长度,则
                    for (let i = 0; i < newrow; i++) { // 循环行数
                      let old = ''// 每次截取的字符
                      start = i * maxname// 截取的起点
                      end = start + maxname// 截取的终点
                      if (i === newrow - 1) { // 如果是最后一行
                        old = e.name.substring(start)
                      } else {
                        old = e.name.substring(start, end) + '\n'// 截取内容加换行
                      }
                      newStr += old// 拼接字符串
                    }
                  } else { // 否则不变显示
                    newStr = e.name
                  }
                  return newStr + '\n' + e.value
                }

关注我,一起进步,下期再见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法数据结构体系篇class09】:链表问题:快慢指针、回文结构、复制、中点,分区、相交

一、链表解题的方法论 1)对于笔试&#xff0c;不用太在乎空间复杂度&#xff0c;一切为了时间复杂度2)对于面试&#xff0c;时间复杂度依然放在第一位&#xff0c;但是一定要找到空间最省的方法二、链表常用数据结构和技巧1&#xff09;使用容器(哈希表、数组等)2&#xff09;快…

Eth-trunk :LACP模式链路聚合实战

Eth-trunk : LACP模式链路聚合实战 需求描述 PC1和PC3数据vlan10 &#xff0c;网段为192.168.10.0 /24PC2和PC4数据vlan20 &#xff0c;网段为192.168.20.0 /24确保设备之间互联互通&#xff0c;使用最大互联带宽并没有环路确保相同网段的PC可以互通判断交换机之间的每个端口…

【Spark分布式内存计算框架——离线综合实战】6. 广告投放的地域分布

3.3 广告投放的地域分布 按照产品需求&#xff0c;需要完成如下统计的报表&#xff1a; 从上面的统计报表可以看出&#xff0c;其中包含三个“率”计算&#xff0c;说明如下&#xff1a; 报表字段信息 针对广告投放的地域分布统计&#xff0c;各个指标字段信息说明如下&…

JDBC学习(复习)-面试总结详细

JDBC详细介绍一、JDBC详细介绍二、jdbc面试总结2.1 JDBC操作数据库的步骤 &#xff1f;2.2 JDBC中的Statement 和PreparedStatement&#xff0c;CallableStatement的区别&#xff1f;2.3 JDBC中大数据量的分页解决方法?2.4 说说数据库连接池工作原理和实现方案&#xff1f;2.4…

九方财富冲刺上市:付费用户开始减少,退款金额飙升至4.9亿元

日前&#xff0c;九方财富控股有限公司&#xff08;下称“九方财富”&#xff09;通过港交所上市聆讯&#xff0c;并披露了聆讯后招股书。据贝多财经了解&#xff0c;九方财富最早于2021年8月31日在港交所递表&#xff0c;后在2022年3月、9月分别进行了更新。 据每日经济新闻报…

vue3.0 模板语法

文章目录前言&#xff1a;1. 内容渲染指令1.1 v-text1.2 {{ }}插值表达式1.3 v-html2. 双向绑定指令2.1 v-model2.2 v-model的修饰符3. 属性绑定指令3.1 动态绑定多个属性值3.2 绑定class和style属性4.条件渲染指令4.1 v-if、v-else-if、v-else4.2 v-show4.3 v-if与v-show的区别…

RebbitMQ 消息队列(简单使用)

消息队列介绍 MQ的优势 1.业务解耦&#xff1a;不同系统消费信息互不关联&#xff0c;灵活增减系统数量&#xff0c;修改某个系统其他系统也不影响 2.异步提速&#xff1a;不同系统之间可同时响应&#xff0c;提升并发量 3.削峰填谷&#xff1a;处理消息高峰期&#xff0c;均摊…

《图机器学习》-Graph Neural Network

前言 回顾之前的Node Embedding&#xff1a; 将图中的节点嵌入到d维空间&#xff0c;并确保图中相似的节点能够嵌在一起。 即学习一个编码器ENCENCENC确保图的节点嵌入到embedding space依然能够描述原空间节点之间的相似性。 在Node Embedding中&#xff0c;我们需要设计&…

DEXTUpload .NET增强的上传速度和可靠性

DEXTUpload .NET增强的上传速度和可靠性 DEXTUpload.NET Pro托管在Windows操作系统上的Internet Information Server(IIS)上&#xff0c;服务器端组件基于HTTP协议&#xff0c;支持从web浏览器到web服务器的文件上载。它也可以在ASP.NET服务器应用程序平台开发的任何网站上使用…

记一次攻防演练溯源实例

缘起 在今年的攻防期间&#xff0c;通过安全设备告警分析&#xff0c;需要对某个源攻击IP进行溯源反制&#xff0c;并且需要记录整个溯源过程和提交溯源报告。 开展溯源 研判 在溯源之前&#xff0c;首先应该判断是否真的存在攻击行为&#xff0c;攻击的特征&#xff0c;攻…

Linux学习(7.5)linux目录配置与重点回顾

鸟哥的 Linux 私房菜 -- Linux 的文件权限与目录配置 (vbird.org) 怎么记啊&#xff0c;直接点进去看吧 目录 Linux目录配置的依据--FHS 绝对路径与相对路径 重点回顾 以下内容转载自鸟哥的Linux私房菜 Linux目录配置的依据--FHS 是希望让使用者可以了解到已安装软件通常…

ARouter::Compiler The user has configuration the module name, it was

学习组件化使用的是阿里的ARouter&#xff0c;我是照着案例敲的&#xff0c;在编译的时候报了这么一个错。 我查了好多资料&#xff0c;大部分都是说build.gradle 配置出现了问题&#xff0c;比如没有配置 javaCompileOptions {annotationProcessorOptions {arguments [AROUTE…

shader(光栅化)

1.定义将模型经过mvp得到的标准立方体映射到屏幕。屏幕是像素数组组成&#xff0c;像素是一个颜色均匀的小方块。2.屏幕变换矩阵3.直接采样&#xff08;锯齿严重&#xff09;4.先模糊再采样&#xff08;抗锯齿有好转&#xff09;5.傅里叶变换6.高通滤波&#xff08;图像边界&am…

robot remote server用这个server去远程获取ip

server端配置&#xff1a; 1、安装python环境 2、下载robot remote server 下载地址&#xff1a;https://pypi.python.org/pypi/robotremoteserver/&#xff08;不要用pip下载&#xff0c;把robotremoteserver.py文件下载下来&#xff09; 3、首先创建一个目录E:\rfremote\ &a…

canvas初学2

一、碰撞检测 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,…

Linux下java服务占用cpu过高如何处理

Linux下java服务占用cpu过高如何处理 top命令查看进程信息 top按下shiftp,按cpu使用率排行,可见进程1932占用最高,并且是一个java服务 使用jps命令确认java服务 [rootVM-16-16-centos ~]# jps 1011 Jps 9462 yuan_back-0.0.1-SNAPSHOT.jar 1932 spigot-1.18.jar查找异常进程中…

在windows11上安装openssh服务端并修改端口号

在windows11上安装openssh服务端并修改端口号 目录1.软件下载地址2.修改端口3.启动ssh原文链接&#xff1a;https://blog.csdn.net/qq_62129885/article/details/1268467751.软件下载地址 Release v9.2.0.0p1-Beta PowerShell/Win32-OpenSSH (github.com) https://github.co…

【BBuf的CUDA笔记】八,对比学习OneFlow 和 FasterTransformer 的 Softmax Cuda实现

0x1. OneFlow/FasterTransformer SoftMax CUDA Kernel 实现学习 这篇文章主要学习了oneflow的softmax kernel实现以及Faster Transformer softmax kernel的实现&#xff0c;并以个人的角度分别解析了原理和代码实现&#xff0c;最后对性能做一个对比方便大家直观的感受到onefl…

光伏行业规模“狂飙”至87.41GW,机器视觉检测成保量提质“王牌”?

在产业政策引导和市场需求驱动的双重作用下&#xff0c;我国光伏产业已成为具备国际竞争优势的产业&#xff0c;在制造规模、技术水平和市场份额等方面均位居全球前列。近日&#xff0c;国家能源局公布了2022年光伏新增装机规模&#xff1a;87.41GW&#xff0c;增长率59.27%。行…

一文带你了解MySQL的Server层和引擎层是如何交互的?

对于很多开发小伙伴来说&#xff0c;每天写SQL是必不可少的一项工作。 那不知道大家有没有深入了解过&#xff0c;当我们的一条SQL命令被执行时&#xff0c;MySQL是如何把数据从硬盘/内存中查出来并展示到用户面前的呢&#xff1f; 其实&#xff0c;MySQL也没有大家想象的那么…