编辑代码

##安装、载入和参数设置
##install.packages("ggplot2")
##install.packages("dplyr")
##install.packages("reshape2")
##install.packages("moments")
library(ggplot2)
library(dplyr)
library(reshape2)
library(moments)
N<-1000                            ##点的个数
N2 <- 10000
lwd0 <- 1.25                      ##线条粗细
color <- c('orange','blue','red') ##线条颜色

##特征数
cn <- data.frame(matrix(ncol=4,nrow = 0))                     ##建立空数据框
colnames(cn) <- c('mean','sd','skewness','kurtosis')    ##重命名列
cha <- function(i,a){
  my<-round(mean(i),4)                 ##平均数
  sy<-round(sd(i),4)                   ##标准差
  g1<-round(skewness(i),4)             ##偏度
  g2<-round(kurtosis(i)-3,4)           ##峰度
  return(c(my,sy,g1,g2))
}

##main
x <- seq(-10,10,length=N)
y1 <- dt(x,2)
y2 <- dt(x,30)
y3 <- dnorm(x)
set.seed(2022)
ry1 <- rt(N2,2)
set.seed(2022)
ry2 <- rt(N2,30)
set.seed(2022)
ry3 <- rnorm(N2) 

data <- as.data.frame(x) %>% mutate('df2'=y1) %>% mutate('df30'=y2) %>% mutate('norm'=y3)  ##数据合并
data2 <- melt(data,id.var="x",variable.name = 'df',value.name = 'y')                       ##数据转换
data2 %>% ggplot(aes(x=x,y=y,col=df,linetype=df))+                                         ##根据类型自动成图
  geom_line(lwd=lwd0)+                                                                     ##自定义线条粗细
  scale_colour_manual(values=color)+                                                       ##自定义线条颜色
  labs(x='x',y='f(x)',title='t分布与正态分布',color='类型',linetype='类型')+               ##坐标轴文字与标题
  theme_light()+                                                                           ##主题
  theme(plot.title = element_text(size=20,hjust=0.5,vjust=0.5))                            ##标题设置

cn[1,] <- cha(ry1,cn)
cn[2,] <- cha(ry2,cn)
cn[3,] <- cha(ry3,cn)
rownames(cn) <- c('df2','df30','norm')       ##重命名行
cn