基于 AntV F2 的雷达图组件开发

在小程序(Taro)中使用antv/f2 公司的小程序项目需求中需要使用图表展示一些数据趋势,于是就去调研了一些图表的组件库,最后结合各组件库的图表样式、性能以及后期维护和扩展等方面决定使用antv/f2这个图表库,记录一下使用方式、样式等属性的修改方法以及遇到的一些坑点。 阅读详情

Alt

本文由ScriptEcho平台提供技术支持

项目地址:传送门

基于 AntV F2 的雷达图组件开发

应用场景介绍

雷达图是一种多变量统计图表,用于可视化展示多个维度的数据。它通常用于比较不同对象的多个属性或指标,直观地反映各维度之间的差异和整体表现。

代码基本功能介绍

本代码使用 AntV F2 框架开发了一个雷达图组件,它具有以下基本功能:

  • 展示多维度数据,每个维度对应一个雷达轴
  • 根据不同维度的数据值绘制雷达线和雷达点
  • 支持自定义雷达图的尺寸、颜色和样式
  • 支持添加图例,方便识别不同维度的数据

功能实现步骤及关键代码分析说明

1. 数据准备

首先,需要准备用于绘制雷达图的数据,数据结构应包含多个维度和对应的数据值。在本例中,我们使用了一个模拟的数据集,其中包含了不同用户在不同维度的得分数据。

2. 初始化雷达图

使用 F2 的 Chart 组件初始化雷达图,并指定数据源和坐标系类型为极坐标系。

const chart = new Chart({
  data,
  coord: 'polar',
});

3. 添加雷达轴

使用 Axis 组件添加雷达轴,并指定轴的字段、网格线样式和刻度值。

chart.addAxis('item', { grid: 'line' });
chart.addAxis('score', { grid: 'line', style: { grid: { fill: '#1890FF', fillOpacity: 0.2 } } });

4. 绘制雷达线和雷达点

使用 Line 和 Point 组件绘制雷达线和雷达点,并指定数据的字段和颜色。

chart.addLine('item', 'score', 'user');
chart.addPoint('item', 'score', 'user');

5. 添加图例

使用 Legend 组件添加图例,方便识别不同维度的颜色对应关系。

chart.addLegend();

6. 渲染雷达图

将雷达图渲染到 DOM 元素中。

chart.render();

总结与展望

开发这段代码的过程让我对雷达图的原理和实现有了更深入的理解。同时,我还体会到了 AntV F2 框架的强大功能和易用性。

未来,该雷达图组件还可以进一步拓展和优化:

  • 支持动态更新数据和重新渲染雷达图

  • 添加更多样式自定义选项,如雷达轴的样式、网格线的样式和雷达点的形状

  • 探索使用其他数据结构,如数组或嵌套对象,来绘制雷达图

  • 研究将雷达图与其他图表类型结合,创建更丰富的可视化效果

    更多组件:



    获取更多Echos

    本文由ScriptEcho平台提供技术支持

    项目地址:传送门

    扫码加入AI生成前端微信讨论群:

扫码加入群聊

关于在小程序项目中使用图表插件AntV(即F2) 以前嘛从开发H5和各种图表系统被拉到来开发小程序,拿到的一个项目里面就涉及几个图表,用canvas是能实现效果,但是周期长而且还不一定好看稳定。所以嘛就上网找了相关资料。发现有Echarts为小程序专门改写的一套,但是类型不是很全,就转到了AntV这里来,阿里写的F2内容也挺全的。 阅读详情

相关推荐

antv f2图表参数详解

折线图是经常使用并且比较容易的一种图形,G2 中并没有特定的图表类型(柱状图、散点图、折线图等)的概念,用户可以单独绘制某一种类型的图表,如饼图,也可以绘制混合图表,比如折线图和柱状图的组合,折线图和面积图混合就可以实现如图效果;图形相关设置,文档上的说明不是很全,可以从图表示例获取相应信息。用于绘制区域图(面积图)、层叠区域图、区间区域图等。用于绘制折线图、曲线图、阶梯线图等。配置 position 通道映射规则。提示 tooltip。

qq_41954585的博客 1663

AntV移动可视化F2个人使用总结

最近在做移动端App时,用到了AntV移动可视化F2,发现网上对F2使用的资料甚少。通过F2的文档和自己的摸索,总结了几个常用图表以及常用功能的用法。 AntV移动可视化F2个人使用总结安装与引用安装chart对象的创建和基本配置F2各函数介绍(常用的函数与函数中常用的属性)source数据装载tooltip提示信息Axis坐标轴配置Geometry几何标记对象,决定了图表的类型Coordinate配置坐标系Legend图例Animate动画机制pieLabel用于绘制饼图文本的插件Guide绘制图表的辅

A_grumpy_Mario的博客 9108

可视化h5界面编辑器_基于f2从零实现移动端可视化编辑器

前言笔者之前花了大量的时间在思考如何设计和实现H5页面可视化编辑器H5-Dooring,从第一个版本到现在经历了很多次版本迭代和优化,也收到了很多宝贵的建议,目前刚好完成了移动端数据可视化的基本设计和落地方案,在这里特地总结和复盘一下。我们先来看看实现的基本预览图: 你将收获基于antv/f2实现可视化图形组件的封装如何设计表格编辑器并集成到antd的Form中数据可视化组件的schema约定利用...

weixin_36228334的博客 982

Antv F2可视化文档的使用(uniapp调用)

Antv F2移动端可视化使用方法 1.2.2页面局部引用 二、chart对象的创建和基本配置 1、创建一个canvas元素(宽高可以在标签上设置) 2、创建一个chart对象 3.以下是之后渲染图表所用到的数据data 三、F2各函数介绍(常用的函数与函数中常用的属性) 1.source数据装载

weixin_53339757的博客 7219

告别QXDM:在Android Studio中调试与验证高通NV读写功能的完整流程

本文详细介绍了在Android Studio中调试与验证高通NV分区读写功能的完整流程,替代传统的QXDM工具。通过JNI接口层、HAL服务层和Diag通信层的架构设计,开发者可以在熟悉的IDE环境中高效完成NV操作,包括环境配置、错误处理和性能优化等关键实践。

weixin_27013291的博客 262

Neo4j 智能供应链应用源代码简析

本文简析Neo4j智能供应链应用的源代码,让你也可以快速开发自己的供应链应用。

Neo4j 开发者博客 1681

antv g2绘制雷达图,点击横坐标的label变色

需求介绍: 绘制雷达图 点击label改变样式 解决思路: 首先考虑着使用g2自带的label来进行展示,虽然通过chart.on('axis-label:click',ev=>{})可以拿到当前点击的哪一个,但是label内部没有回调函数,无法进行判断来展示不同的颜色。 然后再考虑使用辅助文本chart.guide().text({}) 来展示label,label展示出来了,但位置是根据数据变化的,所以位置不好控制,在辅助文本的点击事件里面重新绘图,辅助文本的点击事件chart.on('gu

weixin_44471622的博客 5424

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 464

使用antv2画三角形雷达图

本次是使用React框架来实现,用vue或者其他框架,也是一样的道理。 直接上代码: import React, { FC, useEffect } from 'react'; import F2, { Chart } from '@antv/f2'; import _ from 'lodash'; interface TriangleCardProps {} // 三角形雷达图 const TriangleCard: FC<TriangleCardProps> = () => {

l1134的博客 2065

告别云端依赖:手把手教你在Windows 10/11上离线部署WhisperDesktop(含模型下载避坑指南)

本文详细介绍了如何在Windows 10/11上离线部署WhisperDesktop,包括硬件要求、模型下载、环境配置和实战应用。通过本地部署,用户可以实现高效的语音转文字功能,无需依赖云端服务,特别适合注重数据隐私和需要离线工作的场景。

weixin_33736048的博客 324

富士SC2022,C325,C328打印机扫描到网络详细教程

富士打印机SC2022,C328,C325等型号扫描到电脑教程

weixin_41926602的博客 1万+

AntV的使用

AntV的基本使用 实现如下功能雷达图可以使用ECharts,也可以使用AntV来实现 Echarts官方参考 AntV官方参考

m0_49304996的博客 4726

5G核心技术:N3与N4接口深度解析

5G网络中,N3和N4接口是实现用户数据传输的核心。N3接口是gNB与UPF之间的用户面通道,采用GTP-U协议封装数据,通过UDP/IP传输,确保低时延和业务隔离。N4接口是SMF与UPF之间的控制面链路,基于PFCP协议下发转发规则(FAR/TDR/QER/URR),实现精细化流量控制。二者协同工作:N4下发策略(如QoS、计费规则),N3执行数据转发,共同支持5G三大场景(eMBB/uRLLC/mMTC),体现控制与转发分离(CUPS)架构优势。

Qinti_mm的博客 1637

echarts学习笔记:柱状图+雷达图+双环形图+地图可视化+数据传递关系图+关键词条图+数据总览图+AntV/G2/DataV

基于vite和tailwindcss创建项目,使用js。

m0_73560798的博客 999

从建模到调参:基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程解析

本文详细解析了基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程。从运动学建模入手,对比了基于距离与基于位置偏差的两种控制策略,并重点阐述了高精度轨迹跟踪的控制器设计、Simulink仿真搭建及PID参数整定方法,为移动机器人运动控制提供了完整的仿真实践指南。

weixin_29169505的博客 314

ABAP CURR Data Type 深度解析与实战案例

CURR 数据类型是 SAP ABAP 中为处理货币金额而设计的一种特殊数据类型。CURR 数据类型能够自动根据关联的货币代码字段(例如 WAERS)确定小数位数,从而保证金额数据的精度与正确性。CURR 类型通常在 SAP 数据字典中使用,常见于各类业务数据表中,如会计凭证、销售订单等场景中,用于存储货币金额。CURR 数据类型底层实现上类似于 DEC 数据类型,但其特别之处在于与货币代码字段的绑定,这使得金额的格式化和显示可以自动匹配相应的货币规则。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 880

Canvas 绘制雷达图

最近做的一个需求,场景之一是绘制一个雷达图,找了一圈,似乎 AntV 下的 F2 很适合拿来主义: 但是接着又考虑了一下,我当前所做的项目并不是可视化项目,今后大概率也不会有这种可视化图表的需求,只是为了单个需求一两个图表就引入一个可视化库,性价比有点低,辛辛苦苦优化下来的代码体积,就因为一个冗余的代码库一下子回到解放前,那可真要不得(虽然 F2已经够精简的了) 再加上我刚好对于 canvas这...

weixin_34194087的博客 896

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于f2从零实现移动端可视化编辑器

往期推荐在线IDE开发入门之从零实现一个在线代码编辑器基于React+Koa实现一个h5页面可视化编辑器-Dooring深度剖析github star数15.1k的开源项目redux-t...

趣谈前端 1446

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

移动端图表库antv简单使用

原文链接: 移动端图表库antv简单使用 上一篇: ...

阿豪 1000

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

react可视化编辑器_基于f2从零实现移动端可视化编辑器

往期推荐在线IDE开发入门之从零实现一个在线代码编辑器基于React+Koa实现一个h5页面可视化编辑器-Dooring深度剖析github star数15.1k的开源项目redux-thunkTS核心知识点总结及项目实战案例分析前言笔者之前花了大量的时间在思考如何设计和实现H5页面可视化编辑器H5-Dooring,从第一个版本到现在经历了很多次版本迭代和优化,也收到了很多宝贵的建议,目...

weixin_39601641的博客 450

AntV G2/F2 知否知否

AntV G2库是一个非常全面的图表库,可以满足几乎所有基本的需求,其中包含了: 基本图表:折线图、柱状图、条形图、雷达图、箱体图、面积图、饼图、热力图、仪表盘 G2库还有好多高级图表:地图、分面图、关系图等   G2是一个使用WebGL/canvas技术实现的基础图表库,因此既可以在原生js环境下使用,也可以使用任意的js框架例如:jquery、angular、react...

zw3413的专栏 5257

bootstrap table移动端_基于f2从零实现移动端可视化编辑器

往期推荐在线IDE开发入门之从零实现一个在线代码编辑器基于React+Koa实现一个h5页面可视化编辑器-Dooring深度剖析github star数15.1k的开源项目redux-thunkTS核心知识点总结及项目实战案例分析前言笔者之前花了大量的时间在思考如何设计和实现H5页面可视化编辑器H5-Dooring,从第一个版本到现在经历了很多次版本迭代和优化,也收到了很多宝贵的建议,目...

weixin_39759918的博客 271

可视化h5界面编辑器_基于f2从零实现移动端可视化编辑器!

前言笔者之前花了大量的时间在思考如何设计和实现H5页面可视化编辑器H5-Dooring,从第一个版本到现在经历了很多次版本迭代和优化,也收到了很多宝贵的建议,目前刚好完成了移动端数据可视化的基本设计和落地方案,在这里特地总结和复盘一下。我们先来看看实现的基本预览图:你将收获基于antv/f2实现可视化图形组件的封装如何设计表格编辑器并集成到antd的Form中数据可视化组件的schema...

weixin_29081163的博客 943

F2图表语法深度解析:从数据到可视化的艺术

F2图表库基于Leland Wilkinson的图形语法理论,采用模块化架构将可视化分解为数据映射、几何标记、图形属性、坐标系和度量尺度五个核心元素。本文深入解析F2的声明式编程模型、JSX语法应用、组件化架构设计以及数据绑定与映射机制,揭示其如何通过组合语法元素实现从原始数据到专业级可视化图表的转换过程。 ## 图形语法理论基础与F2实现 F2图表库的核心理论基础源自Leland Wilk

gitblog_01084的博客 513

react可视化编辑器_基于f2从零实现移动端可视化编辑器!

前言笔者之前花了大量的时间在思考如何设计和实现H5页面可视化编辑器H5-Dooring,从第一个版本到现在经历了很多次版本迭代和优化,也收到了很多宝贵的建议,目前刚好完成了移动端数据可视化的基本设计和落地方案,在这里特地总结和复盘一下。我们先来看看实现的基本预览图:你将收获基于antv/f2实现可视化图形组件的封装如何设计表格编辑器并集成到antd的Form中数据可视化组件的schema...

weixin_39803022的博客 403

常见的图形库对比 Echarts Highcharts AntV

ECharts 和 Highcharts 功能丰富,适合复杂数据可视化。Chart.js 和 ApexCharts 轻量易用,适合快速开发。D3.js 和 AntV 灵活性高,适合高度定制化的需求。Victory 和 Recharts 适合 React 项目。Plotly.js 适合科学计算和交互式图表。C3.js 和 Google Charts 适合快速开发简单图表。如果需要高度定制化,选择 D3.js 或 AntV。

1220
上一篇: 基于JSChart实现Web端K线图
下一篇: 使用 WebCola.js 创建交互式网络图
ScriptEcho
博客等级 码龄3年 1304粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值