如何查询当前绘图所用的颜色、线宽、线型及点样式?
如何查询R中plot函数使用的绘图参数(颜色、线宽、线型等)
当你在plot()中直接指定col、lty、lwd等参数时,这些参数只是临时覆盖当前绘图的局部设置,并不会修改par()中的全局绘图参数,所以用par('col')这类命令查到的始终是全局默认值,而非你当前plot使用的参数。
解决方案
1. 手动记录参数(最简单直接)
把plot使用的参数提前存在变量中,后续需要查询时直接调用该变量:
# 定义绘图参数 plot_params <- list(col = 'red', lty = 'dashed', lwd = 5, pch = 16) # 使用参数绘图 plot(x=2:4, y=9:11, type='l', col=plot_params$col, lty=plot_params$lty, lwd=plot_params$lwd) # 查询参数 plot_params
2. 用recordPlot()提取已绘制图形的参数
R 3.0.0及以上版本支持用recordPlot()记录当前绘图状态,之后可以从记录的对象中提取具体元素的参数:
# 绘制图形 plot(x=2:4, y=9:11, type='l', col='red', lty='dashed', lwd=5) # 记录绘图状态 p <- recordPlot() # 提取线条的参数(根据绘图元素位置调整索引) p$children[[1]]$gp$col # 输出:"red" p$children[[1]]$gp$lty # 输出:"dashed" p$children[[1]]$gp$lwd # 输出:5
注意:如果绘图包含多个元素(如同时有点和线),需要调整children后的索引来定位目标元素。
3. 修改全局绘图参数后再绘图
如果希望用par()直接查询当前使用的参数,可以先通过par()设置全局参数,再调用plot()(此时无需在plot中重复指定参数):
# 设置全局绘图参数 par(col='red', lty='dashed', lwd=5) # 绘图 plot(x=2:4, y=9:11, type='l') # 查询参数 par('col') # 输出:"red" par('lty') # 输出:"dashed" par('lwd') # 输出:5 # 恢复默认绘图环境(可选) dev.off()
内容的提问来源于stack exchange,提问作者pglpm
相关产品推荐
相关产品推荐

