uniapp 用于开发H5项目展示饼图,使用ucharts 饼图示例

news2024/11/24 20:43:46

先下载ucharts H5示例源码:

uCharts: 高性能跨平台图表库,支持H5、APP、小程序(微信小程序、支付宝小程序、钉钉小程序、百度小程序、头条小程序、QQ小程序、快手小程序、360小程序)、Vue、Taro等更多支持canvas的框架平台,支持饼图、圆环图、线图、柱状图、山峰图、区域图、雷达图、圆弧进度图、仪表盘、K线图、条状图、混合图、玫瑰图、漏斗图、词云图、时序图、散点图、气泡图、地图等常见图表。 - Gitee.com

下载之后,打开项目,将下面所有的文件拷贝到【自己的项目】对应目录

 使用ucharts画表

<template>
  <view style="width: 100%; height: 100%">
    <qiun-data-charts type="pie" :opts="opts" :chartData="chartData" />
  </view>
</template>
<script>
export default {
  data() {
    return {
      chartData: {},
      opts: {
        color: ["#a743ea", "#eb9327", "#eadb36", "#0cd689"],
        fontColor: "#c5ddf5", // 全局默认字体颜色,16进制颜色格式
        padding: [5, 5, 5, 5],
        rotate: false, //横屏模式
        animation: true, // 是否动画展示图表
        dataLabel: true, // 是否显示图表区域内数据点上方的数据文案
        legend: {
          show: true,
          position: "bottom", //图例相对画布的显示位置,可选值:'bottom','top','left','right'
          float: "center", // 图例位置对齐方向,可选值:'center','left','right','top','bottom'
          padding: 5, //图例内填充边距
          margin: 5, // 图例外侧填充边距
          backgroundColor: "rgba(0,0,0,0)", // 图例背景颜色
          borderColor: "rgba(0,0,0,0)", // 图例边框颜色
          borderWidth: 0, // 图例边框线宽
          fontSize: 13, // 字体大小
          fontColor: "#c5ddf5", // 字体颜色
          lineHeight: 11, // 字体行高
          hiddenColor: "#CECECE", // 点击隐藏时图例标识及文字颜色
          itemGap: 15, // 各个分类(类别)之间的间隔
        },
        extra: {
          pie: {
            activeOpacity: 0.5, // 启用Tooltip点击时,突出部分的透明度
            activeRadius: 10, // 启用Tooltip点击时,突出部分的宽度(最大值不得超过labelWidth)
            offsetAngle: 0, // 起始角度偏移度数,顺时针方向,起点为3点钟位置为0度(比如要设置起点为12点钟位置,即逆时针偏移90度,传入-90即可)
            // customRadius: 0, // 自定义半径(一般不需要传值,饼图会自动计算半径,自定义半径可能会导致显示图表显示不全)
            labelWidth: 10, // 数据标签到饼图外圆连线的长度
            border: true, // 是否绘制各类别中间的分割线
            borderWidth: 3, // 分割线的宽度
            borderColor: "#0879be", // 分割线的颜色
            linearType: "custom", // 渐变类型,可选值:"none"关闭渐变,"custom"开启渐变
            // customColor: [], //自定义渐变颜色,数组类型对应series的数组长度以匹配不同series颜色的不同配色方案,例如["#FA7D8D", "#EB88E2"]
          },
        },
      },
    };
  },
  props: {
    pieData: {
      type: Array,
      default: () => [
        {
          name: "数量1",
          value: 23,
        },
        {
          name: "数量2",
          value: 20,
        },
        {
          name: "数量3",
          value: 29,
        },
        {
          name: "数量4",
          value: 10,
        },
      ],
    },
  },
  watch: {
    pieData: {
      handler() {
        this.setChartData();
      },
      immediate: true,
    },
  },
  methods: {
    // 设置数据 渲染图表
    setChartData() {
      this.chartData = {
        series: [
          {
            data: this.pieData,
          },
        ],
      };
    },
  },
};
</script>

使用echart画表:饼图

<template>
  <view class="charts-box">
    <view class="chart-title">费趋势</view>
    <qiun-data-charts :chartData="chartDataPie" :echartsH5="true" :echartsApp="true"
                      background="none" :eopts="eopts" />

  </view>
</template>

<script>
export default {
  data() {
    return {
      chartData: {},
      // opts:opts uCharts配置
      eopts: {
        color: ["#3287f7", "#ffb87c", "#7cdeb9", "#f26f84", "#6fccf0", "#a16af0"],
        legend: {
          show: false
        }
      },
      chartDataPie: {
        "series": [{
          'type': 'pie',
          radius: '55%',
          label: {
            normal: {
              formatter: "{b}:\n{c}\n{d}%", //百分比之后换行显示文字
              color: '#555'
            },
            color: '#555'
          },
          data: [{"name":"生产部1","value":50},{"name":"生产部2","value":30},{"name":"生产部3","value":20},{"name":"生产部4","value":18},{"name":"生产部5","value":8}]
        }]
      },}
  },
  onReady() {
    // this.getServerData();
  },
  methods: {
    getServerData() {
      setTimeout(() => {
        //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
        let res = {
          categories: ["2016", "2017", "2018", "2019", "2020", "2021"],
          series: [
            {
              name: "实值",
              data: [35, 36, 31, 33, 13, 34]
            }
          ]
        };
        this.chartData = JSON.parse(JSON.stringify(res));
      }, 500);
    },
  }
};
</script>

<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
  width: 100%;
  height: 300px;
  border-radius: 10px;
  border: 1rpx solid black;
  padding: 15rpx;
  background-color: #fff;
}
.chartsview{
  /*border-radius: 15rpx;*/
  /*background-color: #fff;*/
}

.chart-title {
  text-align: center;
  background-color: #bfc;
}
</style>

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

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

相关文章

掌握电脑开机密码设置技巧,让你的电脑数据更安全!

在现代社会&#xff0c;电脑已经成为了我们日常生活中必不可少的工具。然而&#xff0c;随着科技的发展&#xff0c;我们使用电脑也面临着一些安全隐患。为了保护个人数据的安全&#xff0c;设置开机密码就变得十分重要。本文将为大家介绍电脑怎么设置开机密码&#xff0c;以保…

在RTOS中验证互斥量有效解决优先级反转现象

我们在stm32f103c8t6单片机上验证RTOS互斥量有效解决优先级反转现象&#xff0c;利用stm32cube进行RTOS的配置。在选择TIM2当做RTOS的时钟&#xff0c;裸机的时钟源默认是 SysTick&#xff0c;但是开启 FreeRTOS 后&#xff0c;FreeRTOS会占用 SysTick &#xff08;用来生成1ms…

数组去重及去除指定值,每一个对象添加属性值

1、数组去重ES6写法 Set() // 数组去重 let arr [1,2,4,6,3,2,6,7,7,2,9,0,1,5] arr [...new Set(arr)] console.log(arr); 2、数组去除指定值 filter() // 数组去除指定值 let arr [1,2,4,6,3,2,6,7,7,2,9,0,1,5] const num 7 arr arr.filter(item>item!num) cons…

Go集成elasticsearch8极简demo,光速入门

Go集成elasticsearch8极简demo,光速入门 配置go环境创件go mod工程代码实现配置go环境 编辑器添加goproxy GO111MODULE=on;GOPROXY=https://mirrors.wps.cn/go/,https://goproxy.cn,direct;GOSUMDB=off创件go mod工程 mkdir demo cd demo go mod init demo代码实现 在demo…

测试用例的修改更新

测试用例的修改更新是指测试过程中由于用户需求的改变&#xff0c;或者测试过程中发现有新的需求产生&#xff0c;使得测试用例需要进行修改。修改更新测试用例不仅是一种测试技术&#xff0c;更是一种质量保证的方法。但修改和更新测试用例的技术要点在于&#xff1a; 1、执行…

设计模式之创建型设计模式(一):单例模式 原型模式

单例模式 Singleton 1、什么是单例模式 在软件设计中&#xff0c;单例模式是一种创建型设计模式&#xff0c;其主要目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。 这意味着无论何时需要该类的实例&#xff0c;都可以获得相同的实例&#xff0c;而不会创建…

API接口能力不足?Bug处理慢?Lazada开放平台API商品接入

7月30日正式发布的Lazada开放平台2.0&#xff08;Lazada Open Platform 2.0&#xff09;&#xff0c;从商品API、订单API、IM&#xff08;即时通信&#xff09; API、营销工具等几大方向&#xff0c;带来全新升级的API体系&#xff0c;共新增47个接口、优化19个接口&#xff0c…

JVM-9-Class类文件的结构

Java技术能够一直保持着非常良好的向后兼容性&#xff0c;Class文件结构的稳定功不可没。 Class文件是一组以8个字节为基础单位的二进制流&#xff0c;各个数据项目严格按照顺序紧凑地排列在文件之中。 Class文件格式采用一种类似于C语言结构体的伪结构来存储数据&#xff0c…

详细教程 - 从零开发 鸿蒙harmonyOS应用 第八节——鸿蒙操作系统中的文件读写操作封装

一、引言 鸿蒙操作系统是华为自主研发的全场景操作系统。在这篇博客中&#xff0c;我们将探讨如何在鸿蒙操作系统中实现文件读写操作的封装。 二、文件读写操作 在鸿蒙操作系统中&#xff0c;文件读写操作是一个常见的需求。下面是一个简单的文件读写操作的封装示例&#xff1…

数据分析场景下,企业大模型选型的思路与建议

来源/作者&#xff1a;爱分析 随着大模型带来能力突破&#xff0c;让AI与数据分析相互结合&#xff0c;使分析结果更好支撑业务&#xff0c;促进企业内部数据价值释放&#xff0c;成为了当下企业用户尤为关注的话题。本次分享主要围绕数据分析场景下大模型底座的选型思路&#…

上传xml文件进行跨站脚本攻

文件路径或者URL&#xff1a;xxxxx <?xml version"1.0" encoding"iso-8859-1"?> <xsl:stylesheet version"1.0" xmlns:xsl"http://www.w3.org/1999/XSL/Transform"> <xsl:template match"/"> <html…

部署threestudio | stable zero123

选择我在autodl的stable-zero123这个镜像&#xff0c;或者直接选这个基础环境 开机后切换到conda的base环境 这里注意一点就是目前stable-zero123这个镜像还没解决的问题&#xff0c;就是没法使用xformers&#xff0c;所以如果重新配置&#xff0c;在这里就要先安装指定版本的…

liunx下用C++使用freetype库在opencv上打中文字

1、/visualizer.cpp:11:10: fatal error: ft2build.h: 没有那个文件或目录 11 | #include <ft2build.h> freetype安装问题&#xff0c;要把文件拉到根目录&#xff0c;不然找不到文件 2、编译失败找不到定义 /usr/bin/ld: CMakeFiles/interactive_face_detection_de…

树莓派Ubuntu系统安装OpenCV教程

硬件&#xff1a;树莓派4B 2G 内存卡32G 软件&#xff1a;系统是ubuntu-mate-20.04.1-desktop-arm64raspi.img 步骤如下&#xff1a;一、更新系统软件包列表和安装基本工具 sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential cmake git二、安装…

【Linux】Linux运维基础

Linux简介&#xff1a; Linux是一个开源的操作系统内核&#xff0c;最初由Linus Torvalds创建。它通常与GNU工具一起使用&#xff0c;以创建一个完整的操作系统。Linux操作系统有许多基于内核的发行版&#xff0c;如Ubuntu、CentOS、Debian等&#xff0c;每个发行版都有其独特的…

解决docker alpine /bin/sh: ./main: not found

解决docker alpine /bin/sh: ./main: not found golang中编译之后的二进制文件部署在alpine镜像中出现了not found问题解决这种情况是因为动态链接库位置错误导致的&#xff0c;alpine镜像使用的是musl libc而不是gun libc。因而动态链接库的位置不一致。在基础镜像内执行&…

13. 从零用Rust编写正反向代理, HTTP中的压缩gzip,deflate,brotli算法

wmproxy wmproxy是由Rust编写&#xff0c;已实现http/https代理&#xff0c;socks5代理&#xff0c; 反向代理&#xff0c;静态文件服务器&#xff0c;内网穿透&#xff0c;配置热更新等&#xff0c; 后续将实现websocket代理等&#xff0c;同时会将实现过程分享出来&#xff…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring的AOP前奏

第一章 AOP前奏 1.1 代理模式 代理模式&#xff1a;我们需要做一件事情&#xff0c;又不期望自己亲力亲为&#xff0c;此时&#xff0c;可以找一个代理【中介】 我们【目标对象】与中介【代理对象】不能相互转换&#xff0c;因为是“兄弟”关系 1.2 为什么需要代理【程序中…

MQTT中的遗嘱和证明(Last Will and Testament, LWT)

在MQTT中&#xff0c;遗嘱和证明&#xff08;Last Will and Testament, LWT&#xff09;是一个很有用的功能&#xff0c;允许客户端指定一条消息&#xff0c;当非预期的断开连接发生时&#xff0c;由代理&#xff08;broker&#xff09;代替它们自动发布出去。提供了一个可靠通…

Redis原理之网络模型笔记

目录 1. 阻塞IO 2. 非堵塞IO 3. IO多路复用 ​3.1 select 3.2 poll 3.3 epoll 4. 信号驱动IO 5. 异步IO 6. Redis是单线程还是多线程 Redis采用单线程模型&#xff0c;这意味着一个Redis服务器在任何时刻都只会处理一个请求。Redis的网络模型涉及到阻塞I/O&#xff08;Blo…