R语言 变量间关系可视化

目录

一.散点图与散点图矩阵

1.散点图

 2.散点图矩阵

 3.相关系数网状图

 二.条件散点图

三.大数据集的散点图 

四.3D散点图和气泡图

1.3D散点图

 2.气泡图

 五.广义配对矩阵


一.散点图与散点图矩阵

1.散点图

  散点图将两个变量的各对观测点画在二维坐标中,并利用各观测点的分布来展示两个变量间的关系

  设两个变量分别为和,每对观测值(x_{i},_{}y_{i})在二维坐标中用一个点表示,对观测值在坐标中形成的个点图称为散点图

  利用散点图可以观察两个变量间是否有关系,如果有,关系的形态以及关系强度如何等
 

set.seed(3)                                      # 设置随机数种子
x<-seq(0,25,length=100)                          # 产生序列x


y<-4+0.5*x+rnorm(100,0,2)                        # 产生序列y


d<-data.frame(x,y)                               # 构建数据框d
head(d)

          x        y
1 0.0000000 2.076133
2 0.2525253 3.541211
3 0.5050505 4.770102
4 0.7575758 2.074524
5 1.0101010 4.896616
6 1.2626263 4.691561

 

# 图1 具有线性关系的两个变量的散点图
par(mai=c(0.7,0.7,0.2,0.2),cex=0.8)

plot(d)                                          # 绘制x和y的散点图
polygon(d[chull(d),],col="pink",lty=1,lwd=1)     # 封闭散点图外围的凸出点
points(d)                                        # 绘制x和y的散点图
abline(v=mean(x),h=mean(y),lty=2,col="gray70")   # 添加x和y的均值线
abline(lm(y~x),lwd=2,col=1)                      # 添加y与x的回归直线
lines(lowess(y~x,f=2/3),col=4,lwd=2,lty=6)       # 添加x与y的局部加权回归线

 

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
head(data5_1)

  股票类型 上市板块 总股本 每股收益 每股净资产 净资产收益率 每股资本公积金 每股现金流量
1   医药类   创业板  32062     1.82      11.21        8.110           2.98         3.42
2   地产类   中小板  53697     0.70       3.96        4.760           0.48         2.99
3   地产类   中小板  81757     0.94       7.85        6.320           2.19         3.05
4   医药类   创业板  27392     1.95      10.24        7.990           3.03         3.36
5   科技类   中小板  48395     0.90      11.52        7.590           4.65         3.56
6   医药类     主板  64159     0.62       7.83        7.305           2.98         3.33

 

# 图2 总股本与每股收益的散点图
attach(data5_1)
par(mai=c(0.7,0.7,0.1,0.1),cex=0.7,cex.main=0.8)
plot(总股本,每股收益,pch=19,col="green4",xlab="总股本",ylab="每股收益")
abline(lm(每股收益~总股本),lwd=2,col="red")               # 添加回归线

 

# 图3 带有线性拟合和loess拟合的总股本与每股收益的散点图

library(ggpubr)
library(gridExtra)                   

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
p1<-ggscatter(data=data5_1,x="总股本",y="每股收益", # 绘制散点图
              size=1,color="red2",                              # 设置点的大小和颜色
              add ="reg.line",conf.int=TRUE,                    # 添加回归线和置信区间
              add.params=list(color="blue",fill="lightblue"))+ 
  # 设置回归线和置信区间的颜色
  stat_regline_equation(label.x=50000,label.y=3.3,size=2.5)+
  # 回归方程的位置坐标
  stat_cor(label.x=50000,label.y=3,size=2.5)+       # 相关系数的位置坐标
  theme_bw()                                        # 设置图形主题

p2<-ggscatter(data=data5_1,x="总股本",y="每股收益",   # 绘制散点图
              size=1,color="red2",                                # 设置点的大小和颜色
              add="loess",conf.int=TRUE,                   # 添加loess曲线和置信区间
              add.params=list(color="blue",fill="lightblue"))+ 
  theme_bw()                                             # 设置图形主题

grid.arrange(p1,p2,ncol=2)                               # 组合图形p1和p2

 

# 图4 带有两个变量边际箱线图、拟合直线和loess曲线以及置信椭圆的散点图

library(car)

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
par(mai=c(1.2,1.9,0.1,0.1))
scatterplot(总股本~每股收益,data=data5_1,               # 绘制散点图
               smooth=TRUE,                                          # 绘制loess曲线,
               ellipse=TRUE)                                         # 绘制出置信椭圆

 

# 图5 带有边际直方图与核密度图的总股本与每股收益的散点图

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
library(ggpubr)
p1<-ggscatterhist(data=data5_1,x="总股本",y="每股收益",
                  size=1,color="forestgreen",                 # 设置点的大小和的颜色
                  rug=TRUE,                                   # 添加地毯图
                  margin.plot="histogram",        # 设置边际图的类型为直方图,"density"为核密度图,"boxplot"为箱线图
                  margin.params=list(fill="deepskyblue",color="black"),
                  # 设置边际图的填充颜色和线的颜色
                  ggtheme=theme_minimal())                    # 设置图形主题

 2.散点图矩阵

# 图6 例5-1中6个变量的散点图矩阵

# 编写绘制直方图的函数
panel.hist<-function(x,...){
  usr<-par("usr");on.exit(par(usr))
  par(usr=c(usr[1:2],0,1.5))
  h<-hist(x,plot=FALSE)
  breaks<-h$breaks;nB<-length(breaks)
  y<-h$counts;y<-y/max(y)
  rect(breaks[-nB],0,breaks[-1],y,col="cyan", ...)
}

# 编写计算相关系数的函数
panel.cor<-function(x,y,digits=2, prefix="",cex.cor){
  usr<-par("usr");on.exit(par(usr))
  par(usr=c(0, 1, 0, 1))
  r<-cor(x,y)
  txt<-format(c(r,0.123456789),digits=digits)[1]
  txt<-paste0(prefix,txt)
  if(missing(cex.cor))cex.cor<-0.8/strwidth(txt)
  text(0.5,0.5,txt,cex=cex.cor*r)
}


# 绘制散点图矩阵
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
pairs(data5_1[3:8],gap=0.2,           # 设置散点图之间的间距
      diag.panel=panel.hist,              # 对角线上绘制直方图
      panel=panel.smooth,                 # 为散点图添加上平滑曲线
      upper.panel= panel.cor,             # 对角线上方绘制出相关系数的值
      cex.labels=0.7,font.labels=2,       # 设置对角线标签字体及大小
      oma=c(3,3,3,3))                     # 设置图形边距

pairs(data5_1[3:8],gap=0.2,           # 设置散点图之间的间距
      panel=panel.smooth,                 # 为散点图添加上平滑曲线
      cex.labels=0.7,font.labels=2,       # 设置对角线标签字体及大小
      oma=c(3,3,3,3))                     # 设置图形边距

 

# 图7 带有拟合直线、拟合曲线和置信椭圆的散点图矩阵
library(car)
scatterplotMatrix(data5_1[,3:8],
                  diagonal=TRUE,                                # 对角线绘制出核密度曲线
                  ellipse=TRUE,                                 # 绘制出置信椭圆
                  col="steelblue3",gap=0.5,cex=0.5,             # 设置颜色,图间距和点大小
                  oma=c(3,3,3,3))                               # 设置图形边距

 

# 图8 由corrgram函数绘制的6个变量的散点图矩阵
data5_1<-read.csv("./mydata/chap05/data5_1.csv")

par(mai=c(0.5,0.8,0.2,0.2),cex=0.7)

library(corrgram)

corrgram(data5_1[3:8],
         order=TRUE,                               # 按相关系数排列变量
         lower.panel=panel.pts,                    # 对角线下方绘制散点图
         upper.panel=corrgram::panel.ellipse,      # 对角线上方绘制置信椭圆
         diag.panel=panel.minmax)                  # 对角线上绘制出最小值和最大值

 

# 图9 6个变量的相关系数矩阵

corrgram(data5_1[3:8],
         order=TRUE,                         # 按相关系数排列变量
         lower.panel=panel.shade,            # 对角线下方绘制阴影线
         upper.panel=panel.pie)              # 对角线上方绘制饼图

corrgram(data5_1[3:8],
         order=TRUE,
         lower.panel=panel.shade,
         upper.panel=panel.conf,             #对角线上方显示相关系数(带置信区间)
         diag.panel=panel.minmax) 

 

# 图10 6个变量的相关系数矩阵
data5_1<-read.csv("./mydata/chap05/data5_1.csv")

d<-data5_1[,3:8]
mat<-as.matrix(d);rownames(mat)=data5_1[,1]   # 将data5_1转化成矩阵
head(mat)

       总股本 每股收益 每股净资产 净资产收益率 每股资本公积金 每股现金流量
医药类  32062     1.82      11.21        8.110           2.98         3.42
地产类  53697     0.70       3.96        4.760           0.48         2.99
地产类  81757     0.94       7.85        6.320           2.19         3.05
医药类  27392     1.95      10.24        7.990           3.03         3.36
科技类  48395     0.90      11.52        7.590           4.65         3.56
医药类  64159     0.62       7.83        7.305           2.98         3.33

r<-cor(mat)                                   # 计算相关系数矩阵
r

                   总股本   每股收益 每股净资产 净资产收益率 每股资本公积金 每股现金流量
总股本          1.0000000 -0.9244074 -0.5264225   -0.5013324     -0.3923018   -0.3285882
每股收益       -0.9244074  1.0000000  0.5922254    0.5566837      0.4286464    0.3622033
每股净资产     -0.5264225  0.5922254  1.0000000    0.6823814      0.7891771    0.6435817
净资产收益率   -0.5013324  0.5566837  0.6823814    1.0000000      0.7408937    0.6577160
每股资本公积金 -0.3923018  0.4286464  0.7891771    0.7408937    1.0000000    0.8228905
每股现金流量   -0.3285882  0.3622033  0.6435817    0.6577160      0.8228905    1.0000000

 

library(corrplot)
corrplot(r,method="number")                   # 绘制相关系数矩阵

 

corrplot(r,method="color",type="full")        # 用颜色填充矩阵

 

corrplot(r,order="hclust")                    # 按层次聚类排序

 

corrplot(r,order="AOE",addCoef.col="grey20")  # 在图中增加相关系数

 

# 图11 不同设置的6个变量的相关系数矩阵
# par(mfrow=c(2,2),cex=0.6)
corrplot(r,method="square",order="AOE")   # 绘制方形

 

corrplot(r,method="shade",order="AOE")    # 绘制阴影

 

corrplot(r,order="AOE",type="upper",method="number",cl.pos="b",tl.pos="d") # 上半角绘制相关系数
corrplot(r,add=TRUE,type="lower",method="ellipse",order="AOE",diag=FALSE,tl.pos="n",cl.pos="n")                        # 下半角绘制椭圆

 

corrplot(r,order="AOE",type="upper",method="pie",cl.pos="b",tl.pos="d")  # 上半角绘制圆
corrplot(r,add=TRUE,type="lower",method="number",order="AOE",diag=FALSE,tl.pos="n",cl.pos="n")                          # 下半角绘制相关系数

 

# 图12 sjp.corr函数绘制的6个变量的相关系数矩阵
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
library(sjPlot)

d<-data5_1[,3:8]                      # 选择绘图变量
set_theme(title.size=0.9,             # 设置图形标题字体大小
          axis.title.size=0.9,               # 设置坐标轴标题字体大小
          axis.textsize=0.9,                 # 设置坐标轴字体大小
          geom.label.size=2.5,               # 设置图形标签字体大小
          legend.size=0.9,                   # 设置图例字体大小
          legend.title.size=0.9)             # 设置图例标题主题大小

sjp.corr(d,corr.method="pearson",     # 计算Pearson相关系数
         show.values=TRUE,                   # 画出相关系数的值
         show.legend=TRUE,                   # 画出图例
         p.numeric=TRUE)                     # 画出检验的P值

 

# 图13 ggCor函数绘制的6个变量的相关系数矩阵
library("ggiraphExtra")
require(ggplot2)
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
ggCor(data5_1,whaw=1,    # 计算Pearson相关系数
      digits=4,                # 保留4为小数
      label=3,                 # 显示相关系数及其检验的P值
      mode=2,                  # 显示半角矩阵
      interactive = T,         # 交互效果
      title=FALSE)             # 不显示标题

 3.相关系数网状图

相关系数网状图(web)是用网络连线展示相关系数矩阵的一种图形

将多个变量均匀地放置在一个圆周围,并在各变量结点之间绘制出连接线,线的宽度与两个变量之间的相关系数成比例

正相关的连接线用蓝色表示,负相关的连接线用红色表示相关系数网状图

# 图14 例5-1中6个变量的相关系数网状图
data5_1<-read.csv("./mydata/chap05/data5_1.csv")

library(DescTools) 
mr<-cor(data5_1[,3:8])                         # 计算相关系数矩阵
mr

                   总股本   每股收益 每股净资产 净资产收益率 每股资本公积金 每股现金流量
总股本          1.0000000 -0.9244074 -0.5264225   -0.5013324     -0.3923018   -0.3285882
每股收益       -0.9244074  1.0000000  0.5922254    0.5566837      0.4286464    0.3622033
每股净资产     -0.5264225  0.5922254  1.0000000    0.6823814      0.7891771    0.6435817
净资产收益率   -0.5013324  0.5566837  0.6823814    1.0000000     0.7408937    0.6577160
每股资本公积金 -0.3923018  0.4286464  0.7891771    0.7408937    1.0000000    0.8228905
每股现金流量   -0.3285882  0.3622033  0.6435817    0.6577160      0.8228905    1.0000000

PlotWeb(m=mr,col=c(hred, hblue), 
        cex.lab=0.8,las=1,
        args.legend=list(x=-6,y=-4.5,ncol=4,cex=0.6,box.col="grey80"),
        # 设置图例的排放位置和排列方式
        main="")

 

 二.条件散点图

如果数值变量的各个取值是在一个或多个因子(类别变量)的不同水平下获得的,即观测值是按因子水平分组的,则可以按因子水平分组绘制散点图,这种图形称为条件图(conditioning plot)

利用条件图可以观察按因子水平分组条件下两个数值变量的关系条件散点图

# 图15 按股票类型分类的总股本与每股收益的条件散点图
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
par(cex=.7)
coplot(data=data5_1,总股本~每股收益|股票类型,  # 股票类型为条件
       panel=panel.smooth,                          # 拟合平滑曲线
       col="blue",bg=5,pch=21,                      # 点的颜色、填充色和点型
       bar.bg=c(fac="pink"),                        # 因子类别条的填充颜色
       rows=1,columns=4)                            # 设置图的排列方式

 

# 图16 按股票类型和上市板块两个因子分组绘制的条件散点图
coplot(data=data5_1,总股本~每股收益|股票类型*上市板块,
       panel=panel.smooth,
       col="blue",bg=5,pch=21,bar.bg=c(fac="lightgreen"))

 

# 图17 按上市模块分类的总股本与每股收益的散点图
library(ggiraphExtra)
library(ggplot2)
library(gridExtra)                  
data5_1<-read.csv("./mydata/chap05/data5_1.csv");

mytheme<-theme_bw()+theme(                          # 设置图形主题
  plot.title=element_text(size="10"),             # 设置主标题字体大小
  axis.title=element_text(size=10),               # 设置坐标轴去字体大小
  axis.text=element_text(size=8),               # 设置坐标轴刻度字体大小
  legend.position=c(0.8,0.75),                    # 设置图例位置
  legend.text=element_text(size="7"))             # 设置图例字体大小

p1<-ggPoints(data=data5_1,aes(x=总股本,y=每股收益,fill=上市板块),method="lm")+mytheme                            # 线性拟合

p2<-ggPoints(data=data5_1,aes(x=总股本,y=每股收益,fill=上市板块),method="loess")+mytheme                         # loess拟合
grid.arrange(p1,p2,ncol=2)                          # 组合图形p1和p2

 

# 图18 按上市板块分类的总股本与每股收益的散点图
library(ggpubr)
ggscatter(data=data5_1,x="总股本",y="每股收益",size=1,  # 绘制散点图
          color="上市板块",palette="lancet",          # 设置按颜色分类的因子和调色板
          add="reg.line",conf.int=TRUE)+              # 添加回归线及其置信区间
  facet_wrap(~上市板块)+                      # 按上市板块分面
  stat_regline_equation(label.x=35000,label.y=3.3,size=2.5)+ 
  # 回归方程的位置坐标
  stat_cor(label.x=35000,label.y=3,size=2.5)+          # 相关系数的位置坐标
  theme_bw()+                                          # 设置图形主题
  theme(legend.position="none")                        # 去掉图例

# 图19 按上市板块分类的带有边际箱线图与核密度图的散点图
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
library(ggpubr)
ggscatterhist(data=data5_1,x="总股本",y="每股收益",fill="上市板块",
                  size=1,color="上市板块",                    # 设置点的大小和颜色
                  rug=TRUE,                                   # 添加地毯图
                  margin.plot="boxplot",                      # 设置边际图的类型为箱线图
                  margin.params=list(fill="上市板块",color="black",alpha=0.2),
                  # 设置边际图的填充颜色和线的颜色
                  ggtheme=theme_minimal())                    # 设置图形主题

 

 

ggscatterhist(data=data5_1,x="总股本",y="每股收益",fill="上市板块",
                  size=1,color="上市板块",
                  rug=TRUE,
                  margin.plot="density",                      # 设置边际图的类型为核密度图
                  margin.params=list(fill="上市板块",color="black",alpha=0.2),
                  ggtheme=theme_minimal())

 

# 图20 按上市板块分类的散点图矩阵
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
attach(data5_1)

library(car)
scatterplotMatrix(~每股收益+每股净资产+净资产收益率|上市板块,
                  diagonal=TRUE,               # 矩阵对角线上画出每个变量的核密度曲线
                  ellipse=TRUE,                # 画出分类散点图的置信椭圆
                  gap=0.5,cex=0.6,cex.labels=1)

三.大数据集的散点图 

# 图21 高密度普通散点图和平滑后的散点图
par(mfrow=c(1,2),mai=c(0.8,0.6,0.2,0.2),cex=0.7)
set.seed(1234)
n=10000;x<-rnorm(n);y<-1+2*x+3*rnorm(n);d<-data.frame(x,y)
plot(d,sub="(a) 10000个数据对的散点图")
abline(v=mean(x),h=mean(y),lty=2,col="gray30")

smoothScatter(d,sub="(b) 平滑后的散点图")
abline(v=mean(x),h=mean(y),lty=2,col="gray30")

 

# 图22 六边形封箱散点图和二维核密度估计散点图
set.seed(1234)
n=10000;x<-rnorm(n);y<-1+2*x+3*rnorm(n);df<-data.frame(x,y)

library(openair)
scatterPlot(df,x="x",y="y",method="hexbin",cols="default")  # 图(a)六边形封箱

scatterPlot(df,x="x",y="y",method="density",cols="jet")# 图(b)二维核密度估计

 

 

# 图23   6个变量的散点图
data5_1<-read.csv("./mydata/chap05/data5_1.csv")
library(IDPmisc)
ipairs(data5_1[3:8],pixs=1.2,cex=0.7)

四.3D散点图和气泡图

1.3D散点图

# 图24 每股收益、每股净资产、净资产收益的3D散点图

library(scatterplot3d)

data5_1<-read.csv("./mydata/chap05/data5_1.csv")


par(mfrow=c(2,2),cex=0.6,cex.axis=0.6,cex.main=1)
s3d<-scatterplot3d(x=每股净资产,y=净资产收益率,z=每股收益,col.axis="blue",col.grid="lightblue",pch=10,type="p",highlight.3d=TRUE,cex.lab=0.7,main="(a) type=p")

s3d<-scatterplot3d(x=每股净资产,y=净资产收益率,z=每股收益,col.axis="blue",col.grid="lightblue",pch=16,highlight.3d=TRUE,type="h",cex.lab=0.7,main="(b) type=h")

s3d<-scatterplot3d(x=每股净资产,y=净资产收益率,z=每股收益,col.axis="blue",col.grid="lightblue",pch=6,highlight.3d=TRUE,type="h",box=FALSE,cex.lab=0.7,main="(c) box=FALSE")

s3d<-scatterplot3d(x=每股净资产,y=净资产收益率,z=每股收益,col.axis="blue",col.grid="lightblue",pch=16,highlight.3d=TRUE,type="h",box=TRUE,cex.lab=0.7,main="(d) 增加二元回归面")
fit<-lm(每股收益~每股净资产+净资产收益率)
s3d$plane3d(fit,col="grey30")

 

# 图25 按股票类型和上市板块分类的总股本、每股收益、每股净资产的3D散点图

library(lattice)

cloud(总股本~每股收益*每股净资产|股票类型*上市板块,data=data5_1,
         layout=c(4,3),cex=0.6,pch=21,                  # 面板布局
         par.strip.text=list(cex=0.6),                  # 设置分类标签字体
         par.settings=list(par.xlab.text=list(cex=0.4), # 设置x轴标签字体
                           par.ylab.text=list(cex=0.4),                   # 设置y轴标签字体
                           par.zlab.text=list(cex=0.4)))                  # 设置z轴标签字体

 2.气泡图

# 图26 随机模拟的3个变量的气泡图
# x、y、z间无关系的气泡图
par(mfrow=c(1,1),mai=c(0.7,0.7,0.1,0.1),cex=0.7)
set.seed(123)
n <- 40
x<-runif(n);y<-1.5+1.5*x+runif(n);z<-runif(n)+5:1
plot(x,y,cex=z,col="pink",pch=19)
points(x,y,cex=z,lwd=1,col="gray50")

# 图27 总股本、每股收益、每股净资产的气泡图
data5_1<-read.csv("./mydata/chap05/data5_1.csv")

attach(data5_1)

par(mai=c(0.7,0.7,0.1,0.1),cex=0.8)
symbols(x=每股收益,y=每股净资产,总股本,inches=0.15,fg="black",bg="pink")
mtext("气泡大小 = 总股本",line=-2,cex=0.8,adj=0.1)

 

# 图28 PlotBubble函数绘制的总股本、每股收益、每股净资产的气泡图

library(DescTools)

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
attach(data5_1)

par(mai=c(0.7,0.7,0.1,0.1),cex=0.8)
PlotBubble(x=每股收益,y=每股净资产,
           area=总股本,                                 # 设置气泡图的面积向量
           panel.fiest=grid(),                          # 画图之前在图形中添加网格线
           cex=0.00002,col=SetAlpha("green3",0.2),      # 设置气泡的大小和颜色
           xlab="每股收益",ylab="每股净资产")
mtext("气泡大小 = 总股本",line=-2,cex=0.8,adj=0.1)      # 添加文本注释
BubbleLegend("bottomright",area=c(15,10,5),frame=TRUE,   # 添加图例
             cols=SetAlpha("blue2",0.3),bg="grey95",
             labels=c(15,10,5),cex=0.8,cols.lbl=c("red","yellow","green"))

 五.广义配对矩阵

# 图29 按上市板块分组的总股本、每股收益、每股净资产的广义配对图阵
library(GGally)
library(ggplot2)

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
ggpairs(data5_1[,c(2,3,4,5)],                       # 选择绘图变量
        aes(color=上市板块,alpha=0.7))+                   # 按上市板块分组
  theme(axis.title=element_text(size=8))+         # 设置坐标轴标签字体大小
  theme(axis.text=element_text(size=6))           # 设置坐标轴刻度字体大小

 

# 图30 按股票类型和上市板块分组的总股本、每股收益、每股净资产的广义配对图阵

data5_1<-read.csv("./mydata/chap05/data5_1.csv")
ggpairs(data5_1[,c(1,2,3,4,5)],                 # 选择绘图变量
        aes(fill=股票类型,color=上市板块,alpha=0.7))+ # 按个股票类型和上市板块分组
  theme(axis.text=element_text(size=8))         # 设置坐标轴字体大小

 

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可乐  

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值