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

  • 确保已安装R语言(R)
  • 本文在RStudio(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、R语言绘图样式设置(符号、线条、颜色、文本属性)
2、R语言hist绘图函数
3、R语言作图:坐标轴设置
4、R语言中Legend 函数的参数详解

错误解决:

1、Error in plot.new() : figure margins too large

微信公众号:通信随笔XIDIAN

在这里插入图片描述

<think>好的,我现在需要在RStudio使用ggplot2创建图表。首先,我得确认已经安装了ggplot2包。用户可能已经安装过,但如果没有的话,需要先运行install.packages("ggplot2")来安装。安装完成后,每次使用前要用library(ggplot2)加载这个库,这是引用[2]提到的步骤。 接下来,用户可能想了解基本的绘图流程。根据引用[3],ggplot2的绘图步骤包括初始化ggplot对象,添加图层,定义美学映射等。比如用ggplot(data, aes(x, y)) + geom_point()这样的结构来创建散点图。可能需要举一个例子,比如用mtcars数据集,展示如何创建散点图,并添加颜色、形状等属性。 用户还提到可能需要两行的图例,引用[1]说明这是常见需求。这时候可能需要调整图例的布局,比如使用guides()函数或者theme()中的legend.position等参数来控制图例的位置和排列方式。例如,guides(color=guide_legend(nrow=2))可以将颜色图例分成两行。 另外,引用[5]提到几何体的解析,可能需要解释不同的几何对象,比如geom_line()、geom_bar(),以及如何组合它们。同时,引用[4]强调了RStudio和ggplot2结合的优势,比如项目管理和图形输出的方便性,可以提醒用户利用RStudio的界面功能,如查看绘图输出、导出图片等。 在代码示例部分,需要确保语法正确,比如正确使用aes映射,添加几何层,调整图例。同时,注意使用中文注释帮助理解。可能还需要提到如何处理常见的错误,比如忘记加载库或者数据格式不正确。 最后,生成相关问题时要围绕ggplot2的使用,比如调整图例、其他图形类型、自定义主题以及处理常见错误等。确保问题覆盖用户可能感兴趣的进阶主题,帮助他们进一步学习。</think>在RStudio使用ggplot2创建图表需要经过以下步骤: ### 一、安装并加载ggplot2 1. 安装包(首次使用需要): ```r install.packages("ggplot2") # 引用[2] ``` 2. 加载库(每次R会话都需要): ```r library(ggplot2) # 引用[2] ``` ### 二、基础绘图流程 ```r # 使用内置数据集mtcars示例 ggplot(data = mtcars, aes(x = wt, y = mpg)) + # 初始化画布并映射x/y轴 geom_point(aes(color = factor(cyl))) + # 添加散点图层,颜色按气缸数分组 labs(title = "汽车重量与油耗关系", # 添加标题和轴标签 x = "重量(吨)", y = "每加仑里程数") ``` ### 三、创建两行图例(关键操作) ```r ggplot(mtcars, aes(wt, mpg, color = factor(cyl))) + geom_point(size=3) + guides(color = guide_legend(nrow = 2)) + # 强制图例分两行显示 theme(legend.position = "bottom") # 将图例移动到下方 # 引用[1] ``` ### 四、RStudio专用优化 1. 在右下方面板直接查看绘图结果 2. 使用`Export`按钮导出高清图片(PNG/PDF等格式) 3. 通过RMarkdown生成可重复报告(引用[4])
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xidian_hxc

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

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

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

打赏作者

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

抵扣说明:

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

余额充值