使用 Ant Design Pro 的图表(展示cpu、内存、硬盘)

news2025/4/8 21:41:42

文章目录

  • 使用 Ant Design Pro 的图表(展示cpu、内存、硬盘)
    • 一、Ant Design Charts 图表
    • 二、快速上手
    • 三、ant design chart 图表类型
      • StatisticCard 指标卡结合 Ant Design Charts 图表库丰富数值内容,满足大多数数值展示的场景
      • 什么是水波图?
    • 五、展示CPU、内存、硬盘信息
      • cpu、内存 demo
      • 展示硬盘信息 demo
        • 我想在图片下添加额外文字描述呢?
    • 六、其他参考

使用 Ant Design Pro 的图表(展示cpu、内存、硬盘)

一、Ant Design Charts 图表

官方:https://pro.ant.design/zh-CN/docs/graph
官方示例:https://ant-design-charts.antgroup.com/examples

很多时候我们都需要一个美观大方的图表页来充当首页,在快速展示大盘信息的同时还能吸引眼球,提升系统的质感。所以我们也做了一个图表库 Ant Design Charts。

Ant Design Charts 是 G2Plot 的 React 版本,基于 React、TypeScript 封装了所有的 G2Plot 图表,继承了 G2Plot 的所有配置,对 React 技术栈的同学更加友好,统一团队开发。

G2 作为底层依赖,使用了图形语法,上手成本相对较高,功能强大。
G2 是一个基于图形语法,面向数据分析的统计图表引擎。G2Plot 是在 G2 基础上,屏蔽复杂概念的前提下,保留 G2 强大图形能力,封装出业务上常用的统计图表库。
G2Plot 最初诞生于阿里经济体 BI 产品真实场景的业务诉求。

Ant Design Charts 基于 G2Plot,弥补 Ant Design 组件库在统计图表上的缺失,作为 Ant Design 的官方图表组件解决方案。在图表能力上,和 G2Plot 保持一致,不修改技术概念,不修改配置结构。不仅降低这个模块的维护成本,同时降低开发者使用的开发理解成本。

G2 到 Ant Design Charts,我们只有一个目的:降低开发入门门槛,如何选择取决于你对各图表库的理解程度,新手建议使用最简单的 Ant Design Charts,大佬请自便。

二、快速上手

官方文档:https://pro.ant.design/zh-CN/docs/graph
官方示例:https://ant-design-charts.antgroup.com/examples

如果使用 yarn 或者 npm 可以直接安装:

npm install @ant-design/charts --save
 // yarn
 yarn add @ant-design/charts

有些时候图表体积比较大就需要通过 CDN 的方式来加快加载。 CDN 模式下由于底层依赖不一样,为了降低包体积,从 1.0.5 版本开始,组织架构图、流程图、资金流向图、缩进树图被打包到 charts_g6.min.js 里,其它图表打包到 charts.min.js 里,使用时按需引入即可。

我们首先需要在 config/config.ts 中的 scripts 中配置:

scripts: [
  'https://unpkg.com/react@17/umd/react.production.min.js',
  'https://unpkg.com/react-dom@17/umd/react-dom.production.min.js',
  'https://unpkg.com/@ant-design/charts@1.0.5/dist/charts.min.js',
  //使用 组织架构图、流程图、资金流向图、缩进树图 才需要使用
  'https://unpkg.com/@ant-design/charts@1.0.5/dist/charts_g6.min.js',
];
同时在 config/config.ts 中的 externals 中配置:

externals: {
 react: 'React',
 'react-dom': 'ReactDOM',
 "@ant-design/charts": "charts"
}; 

三、ant design chart 图表类型

ant design chart 有 27 种图表类型,上百种图表基本可以满足所有开发的需求。你可以在 官网 看到所有的图表,并且查询它们的 API。
官网:https://ant-design-charts.antgroup.com/

官方示例:https://ant-design-charts.antgroup.com/examples

StatisticCard 指标卡结合 Ant Design Charts 图表库丰富数值内容,满足大多数数值展示的场景

官网:https://procomponents.ant.design/components/statistic-card

指标卡结合统计数值用于展示某主题的核心指标,结合 Ant Design Charts 图表库丰富数值内容,满足大多数数值展示的场景。

何时使用
1)在页面内的重要位置,展示重要信息;
2)在概览页面展示系统功能。

chart 属性可以接受任意的 React 组件作为值,因此你可以根据需要自定义不同类型的图表或其他组件,并将其作为 chart 属性传递给 StatisticCard 组件,以满足你的需求。

将 组件作为 chart 属性传递给 StatisticCard 组件,可以将自定义的图表放置在 StatisticCard 组件中。
在这里插入图片描述

在这个示例中,将 组件作为 chart 属性传递给 StatisticCard 组件,可以将环形图放置在 StatisticCard 组件的标题和数值之间。这样,你可以同时展示上传目录空间的统计信息和具体的环形图示例,以更直观地表示已使用和剩余空间的比例关系。

const DiskInfoPie = () => {
  const totalSize = 2000; // 总大小,单位:GB
  const usedSize = 500; // 使用多少,单位:GB
  const availSize = totalSize - usedSize; // 剩余多少空间,单位:GB

  const data = [
    {
      type: 'Used',
      value: usedSize,
    },
    {
      type: 'Available',
      value: availSize,
    },
  ];

  const config = {
    appendPadding: 10,
    data,
    angleField: 'value',
    colorField: 'type',
    radius: 1,
    innerRadius: 0.6,
    label: {
      type: 'inner',
      offset: '-50%',
      content: '{value}G',
      style: {
        textAlign: 'center',
        fontSize: 14,
      },
    },
    interactions: [
      {
        type: 'element-selected',
      },
      {
        type: 'element-active',
      },
    ],
  };

  return <Pie {...config} />;
};

效果:
在这里插入图片描述

什么是水波图?

什么是水波图?
参考URL: https://zhuanlan.zhihu.com/p/572212494

水波图看起来像一个盛水的球形容器,是一种展示一组数据的百分比值或展示项目进度的示意图,以动态水波的填充方式,视图表引人注目。

在这里插入图片描述

相似图表
1.表示占比和进度关系的图表

在这里插入图片描述

五、展示CPU、内存、硬盘信息

对于展示CPU、内存和硬盘等信息,以下是一些常见的图表类型可以考虑使用:

折线图:折线图可以展示随时间变化的CPU、内存和硬盘使用情况,可以通过折线的趋势来观察资源的变化。

饼图:饼图可以展示CPU、内存和硬盘的使用比例,可以通过扇区的大小来比较不同资源的使用情况。

柱状图:柱状图可以直观地比较CPU、内存和硬盘的使用量,每个资源可以使用独立的柱子来表示。

仪表盘:仪表盘可以以可视化的方式展示CPU、内存和硬盘的使用率,通过指针或刻度来显示资源的当前使用情况

cpu、内存 demo

const CPUGauge = () => {
  const cpuModel = "Intel Core i5-9400F"; // CPU型号
  const cpuCores = 6; // CPU核心数
  const cpuFrequency = "3.0 GHz"; // CPU频率

  // 假设cpuUsage是CPU使用率的值,范围在0-1之间
  const cpuUsage = 0.75;

  const config = {
    percent: cpuUsage,
    type: 'meter',
    innerRadius: 0.75,
    range: {
      ticks: [0, 1 / 3, 2 / 3, 1],
      color: ['#30BF78', '#FAAD14', '#F4664A'], // 调整颜色顺序
    },
    indicator: {
      pointer: {
        style: {
          stroke: '#D0D0D0',
        },
      },
      pin: {
        style: {
          stroke: '#D0D0D0',
        },
      },
    },
    statistic: {
      content: {
        formatter: () => `${Math.round(cpuUsage * 100)}%`, // 将CPU使用率转换为百分比形式
        style: {
          fontSize: '36px',
          lineHeight: '36px',
        },
      },
    },
  };

  return (    
    <div>
      <div>
        CPU型号: {cpuModel},核心数: {cpuCores},频率: {cpuFrequency}
      </div>
      <Gauge {...config} />
    </div>
  );
};

const MemoryLiquid = () => {
  // 假设totalMemory和usedMemory是总内存和当前使用内存的值
  const totalMemory = 16; // 单位:GB
  const usedMemory = 8; // 单位:GB
  const memoryUsage = usedMemory / totalMemory; // 计算内存使用率

  const config = {
    percent: memoryUsage,
    outline: {
      border: 4,
      distance: 8,
    },
    wave: {
      length: 128,
    },
  };

  return (
    <div>
      <div>
        总内存: {totalMemory}GB,当前使用内存: {usedMemory}GB
      </div>
      <Liquid {...config} />
    </div>
  );
};

展示硬盘信息 demo

在电脑中,为了
让使用者直观清楚地看出磁盘“已用空间”与“可用空间”占“整个磁盘空间”的百分比,使用合适的统计图是扇形图。

const DiskInfo = () => {
  const data = [
    {
      type: '已使用',
      value: 80,
    },
    {
      type: '剩余空间',
      value: 20,
    },
    {
      type: '上传目录空间',
      value: 50, // 某个目录的占用空间大小
    },
    {
      type: '上传目录剩余',
      value: 50, // 某个目录的剩余空间大小
    },
  ];
  const config = {
    appendPadding: 10,
    data,
    angleField: 'value',
    colorField: 'type',
    radius: 0.8,
    label: {
      type: 'outer',
      content: '{name} {percentage}',
    },
    interactions: [
      {
        type: 'pie-legend-active',
      },
      {
        type: 'element-active',
      },
    ],
  };

  return <Pie {...config} />;
};

然后直接使用 组件 就行。
在这里插入图片描述

我想在图片下添加额外文字描述呢?

思路,修改return返回,之前 return 一个组件。现在我们用div包裹一下。

原来:

return <Pie {...config} />;

改为:

return (
	<div>
	  <Pie {...config} />
	  <div>
		总内存: {totalMemory}GB,当前使用内存: {usedMemory}GB
	  </div>
	</div>
  );

六、其他参考

ant design pro (十)advanced 图表
参考URL: https://www.cnblogs.com/crazycode2/p/10085250.html
不要再问G2、G2Plot、Ant Design Charts什么关系了
参考URL: https://www.yuque.com/antv/g2plot/iqimgm

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

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

相关文章

rime中州韵小狼毫 滤镜与字典的区别

在rime中州韵小狼毫须鼠管输入法中&#xff0c;可以灵活的配置 自定义词典 (rime中州韵小狼毫 自定义词典)和 词组滤镜 (rime中州韵小狼毫 联想词组 滤镜)。而且 自定义词典 和 词组滤镜 看起来效果似乎没有区别。然而&#xff0c;这两者之间的区别&#xff0c;是十分巨大的&am…

Redis学习指南(0)-专栏前言

前言 欢迎来到这个关于Redis的全面教程。Redis&#xff0c;即Remote Dictionary Server&#xff0c;是一款开源的、高性能的内存键值存储系统。它在互联网领域的数据存储和处理中扮演着重要的角色&#xff0c;被广泛应用于缓存、消息队列、实时统计、分布式锁等场景。本专栏将…

ssm框架的简单整合!!!(配置环境)

项目结构&#xff1a; pom.xml: <packaging>war</packaging><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</proj…

jsPlumb、mxGraph和Antv x6实现流程图选型

解决方案 结合我们项目以及主流解决方案&#xff0c;提供以下几种方案&#xff1a; 序号技术栈性质是否开源说明1jsPlumb国外框架社区版、商业版中台项目现有方案2mxGraph国外框架开源比较有名的开源绘图网站draw.io &#xff08;和processOn类似&#xff09;&#xff0c;使用…

Java lambda表达式如何自定义一个toList Collector

匿名类&#xff1a; package l8;import java.util.*; import java.util.function.BiConsumer; import java.util.function.BinaryOperator; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collector; import java.util.s…

Next.js 学习笔记(五)——渲染

渲染 渲染将你编写的代码转换到用户界面。React 和 Next.js 允许你创建混合 web 应用程序&#xff0c;其中部分代码可以在服务器或客户端上呈现。本节将帮助你了解这些渲染环境、策略和运行时之间的差异。 基本知识 首先&#xff0c;下列对熟悉三个基本的网络概念是有帮助的…

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(4)员工管理|修改员工、配置文件

指路&#xff08;1&#xff09;&#xff08;2&#xff09;&#xff08;3&#xff09;&#x1f447; 黑马程序员JavaWeb开发|案例&#xff1a;tlias智能学习辅助系统&#xff08;1&#xff09;准备工作、部门管理_tlias智能学习辅助系统的需求分析-CSDN博客https://blog.csdn.n…

特征工程-特征清洗

特征清洗 在进行玩特征理解后&#xff0c;我们大致理解了面对的数据中包含哪些内容。下一阶段&#xff0c;我么需要对数据中的内容进行进一步分析处理&#xff0c;针对不同数据进行清洗。数据清洗是对数据进行重新审查和校验的过程&#xff0c;目的在于删除重复信息、纠正存在…

中国大学生计算机设计大赛—人工智能实践赛赛道—赛后感想

1.比赛介绍 中国大学生计算机设计大赛是我国高校面向本科生最早的赛事之一&#xff0c;是全国普通高校大学生竞赛排行榜榜单赛事之一。自2008年开赛至2019年&#xff0c;一直由教育部高校与计算机相关教指委等或独立或联合主办。大赛的目的是以赛促学、以赛促教、以赛促创&…

【python 的各种模块】(9) 在python使用PIL,即pillow模块

目录 1 用PIL模块和读入&#xff0c;生成图片 1.1 导入PIL模块 1.1.1 常用的导入形式 1.1.2 常用的导入形式 1.1.3 PIL下面的常用子模块 1.2 用 PIL.Image.open() 读入图片 1.3 用PIL.Image.new() 生成新图片 1.5 PIL中图片的格式 1.6 pic1.show() 显示图片 1.7 测试…

软件测试|解析selenium.common.exceptions.ElementClickInterceptedException错误及解决方法

导言 在自动化测试中&#xff0c;Selenium是一个广泛使用的工具&#xff0c;用于模拟用户在网页上的操作。然而&#xff0c;有时候在执行点击操作时&#xff0c;可能会遇到ElementClickInterceptedException异常&#xff0c;这可能是由于多种原因导致的。本文将深入探讨这个错…

金和OA jc6 GetAttOut SQL注入漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率的核心思想,为用户提供一整套标准的办公自动化解决方案,以帮助…

C++上位软件通过Snap7开源库访问西门子S7-200/LOGO PLC/合信M226ES PLC V存储区的方法

前言 在前面例程中谈到了C 通过Snap7开源库S7通信库跟西门子S7-1200PLC/S7-1500PLC以及合信CTMC M226ES PLC/CPU226 PLC通信的方式方法和应用例程。但是遗憾的是Snap7中根据官方资料显示只能访问PLC的 DB区、MB区、C区、T区 、I区、Q区&#xff0c;并没有提到有关如何访问S7-20…

C#用正则表达式获取字符串中汉字的数量

目录 一、关于字符串和判断其组成常识 二、用正则表达式获取字符串中汉字的数量 1.字符是否为汉字的正则表达式 2.实例 3.生成结果 三、相关知识点 1.Regex.IsMatch 方法 一、关于字符串和判断其组成常识 字符串中可以包括数字、字母、汉字或者其他字符。使用Char类型的…

国标28181平台的手机视频监控客户端的电子地图功能对比

目 录 一、手机客户端 1、概述 2、具体功能简述 二、电子地图功能 1、经纬度定位 2、附近设备 3、实时浏览功能 4、录像回放 5、缩放功能 三、手机web客户端和CS客户端上的电子地图功能对比 1、对比表 2、测距&#xff08;PC客户端功能&#xff09; 3…

Oracle数据库19c OCP 1z0-082考场真题解析第24题

考试科目&#xff1a;1Z0-082 考试题量&#xff1a;90 通过分数&#xff1a;60% 考试时间&#xff1a;150min 本文为云贝教育郭一军guoyJoe原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。【云贝教育】Orac…

Vue3+Echarts:柱状图的图例(legend)不显示

一、问题 在使用Echarts绘制堆积柱状图的时候&#xff0c;想给柱状图添加图例&#xff0c;但是添加完后&#xff0c;图例不显示。 二、问题及解决 原因 这里图例不显示&#xff0c;是因为legend里面图例的文字内容跟series里每一项的name的内容不一致&#xff0c;必须得两者…

【已解决】c语言编写的lib如何调用

本博文源于笔者在vs2015正在编写的lib想要调用的问题&#xff0c;正常的操作是将项目生成lib&#xff0c;但是然后又如何操作呢&#xff0c;本博文就是解决这样的问题 文章目录 问题再现步骤1&#xff1a;编写lib.h与lib.c步骤2&#xff1a;生成lib步骤3&#xff1a;添加用得到…

nginx基础面试题以及配置文件解析和命令控制

目录 1、nginx是什么 2、nginx的特点 3、为什么中国大陆有&#xff1a;百度、京东、新浪、网易、腾讯、淘宝等这么多用户使用nginx 4、nginx 的内部技术架构 上一期我们配置安装了nginx接着讲一下nginx配置文件的解析和nginx 命令控制 感谢观看&#xff01;希望能够帮助到…

Kali Linux——aircrack-ng无线教程

目录 一、准备 二、案例 1、连接usb无线网卡 2、查看网卡信息 3、开启网卡监听 4、扫描wifi信号 5、抓取握手包 6、强制断开连接 7、破解握手包 三、预防 一、准备 1、usb无线网卡&#xff08;笔记本也是需要用到&#xff09; 2、密码字典&#xff08;Kali 系统自带…