快捷搜索: 王者荣耀 脱发

使用 R语言 进行简单制图(plot,hist)

    确保已安装R语言() 本文在RStudio()下运行,运行代码之前加载对应的包library( ⋅ cdot ⋅)

1、plot(代码注释说明)

x<-seq(-3,11,len=8)
y_float<-c(0.0118740242521950,0.0091057538361494,0.0071377665672741,0.0055924181000629,0.0044031276652462,	0.0035296146085217,	0.0028331581203653,0.0022862284829942)
y_int<-c(0.011646798525798,0.009197650732455,0.007194266428098,0.005641787783029,0.004451607654203,0.003545816453096,0.002774558531322,0.002327307729162)
windowsFonts(TNM = windowsFont("Times New Roman"))           #字体设置
windowsFonts(Son = windowsFont("宋体"))

plot(
     x,y_float,
     xlim=c(-3,11),             #x轴范围设置(最大最小值)
     xlab="SNR/dB",             #x轴标题
     ylab="估计误差",            #y轴标题
     family="Son",
     family="TNM",               #字体设置
     col=black,                #颜色
     # yaxs="i",xaxs="i",        #去掉坐标预留空间
     lty=1,                      #线型
     lwd=2,                      #线宽
     pch=0,                      #点的符号形状
     cex=2,                      #符号大小
     type=b,                   #点连接方式 l线 b点线 p点
     )

lines(                       #在前一条产生窗口的绘图指令上添加线条
  x,y_int,
  xlim=c(-3,11),
  xlab="SNR/dB",
  ylab="估计误差",
  family="Son",
  family="TNM",
  col=red,
  # yaxs="i",xaxs="i",       
  lty=1,                      
  lwd=2,                      
  pch=1,                      
  cex=2,                      
  type=b,                   
)

axis(1,                       #轴线(1234->下左上右)
     seq(-3,11),seq(-3,11),   #坐标控制
     las=1,                   #文字方向
     font.axis=1,             #字体(粗细斜)
     family="TNM")          

abline(v=x,lty=2)            #作直线 v竖h横
abline(h=c(0.01),lty=2)
#grid(nx=7,ny=6,lwd=2,col=blue)#作网格
legend("topright",legend=c("浮点","定点"),col=c("black","red"),pch=c(0,1),lty=1)
                             #图例 top/bottom+left/right(位置设置)

2、hist(代码注释说明)

windowsFonts(TNM = windowsFont("Times New Roman"))
windowsFonts(Son = windowsFont("宋体"))
freq_offset <- matrix(1:4000,nrow=2)    #生成4000个元素的矩阵,分两行
freq_offset[1,] <- rnorm(2000,0,0.005)  #正态随机生成2000个数,均值0,标准差0.005)
freq_offset[2,] <- rnorm(2000,0,0.004) 
par(mfrow=c(1,2))                #多图同时显示(左右顺序排布)

###############################################################
num_1=as.numeric(freq_offset[1,])#freq_offset为导入得2x2000 tbl_df 格式矩阵文件,转为numeric格式(只能向量转)
hist(num_1, 
     breaks = 20,       #分割直方个数  
     freq = F,          #纵坐标:T为频数,F为频率
     col="pink",
     border = white,  #直方边颜色
     main=SNR=-3dB,family="Son",family="TNM", #标题与字体
     xlab = 估计误差,xlim=c(-0.01,0.01),ylab = 频率)
curve(dnorm(x,          #函数正态拟合 curve为函数作图
            mean=mean(num_1), 
            sd=sd(num_1)),
      xlim=c(-0.01,0.01),
      add=TRUE)          #线条加入到上一幅图(FALSE为独立显示)
###############################################################
num_2 <-as.numeric(freq_offset[2,])
hist(num_2,
     breaks = 20,
     freq = FALSE,
     col="pink",
     border = white,
     main=SNR=-1dB,family="Son",family="TNM",
     xlab = 估计误差,xlim=c(-0.01,0.01),ylab = 频率)
curve(dnorm(x, 
            mean=mean(num_2), 
            sd=sd(num_2)),
      xlim=c(-0.01,0.01),
      add=TRUE)
1、 2、 3、 4、 错误解决: 1、
经验分享 程序员 微信小程序 职场和发展