如何修改R语言绘制的半变异函数图坐标轴字体大小?
解决gstat半变异函数图坐标轴字体过小问题
gstat包的plot.variogram()函数(你调用plot()时实际触发的方法)不支持直接传入cex.lab和cex.axis参数,这就是你设置后无效的原因。下面提供两种可行的解决方案:
方案1:用par()设置全局绘图参数
在绘图前通过par()全局配置坐标轴标签和刻度的字体大小,后续所有绘图都会应用这个设置:
library(gstat) n <- 100 X <- runif(n, 0, 100) Y <- runif(n, 0, 100) ref_exponential <- exp(runif(n, 0, 1)) data_exponential <- data.frame(X, Y, ref = ref_exponential) coordinates(data_exponential) <- ~X + Y variogram_model_exponential <- variogram(ref ~ 1, data_exponential) gaussian_model_exponential <- fit.variogram(variogram_model_exponential, vgm("Gau")) # 配置全局字体大小 par(cex.lab = 1.5, cex.axis = 1.5) # 绘制半变异函数图 plot(variogram_model_exponential, model = gaussian_model_exponential) # 若需恢复默认设置,可运行: # par(cex.lab = 1, cex.axis = 1)
方案2:用ggplot2重绘(更灵活的自定义)
如果需要更精细的绘图控制,推荐用ggplot2重构绘图逻辑,能直接调整各类元素的字体大小:
library(gstat) library(ggplot2) n <- 100 X <- runif(n, 0, 100) Y <- runif(n, 0, 100) ref_exponential <- exp(runif(n, 0, 1)) data_exponential <- data.frame(X, Y, ref = ref_exponential) coordinates(data_exponential) <- ~X + Y variogram_model_exponential <- variogram(ref ~ 1, data_exponential) gaussian_model_exponential <- fit.variogram(variogram_model_exponential, vgm("Gau")) # 将变异函数数据转为普通数据框 variogram_df <- as.data.frame(variogram_model_exponential) # 生成高斯模型的拟合曲线数据 max_dist <- max(variogram_df$dist) pred_var <- variogramLine(gaussian_model_exponential, maxdist = max_dist) # 用ggplot绘图,自定义字体大小 ggplot() + geom_point(data = variogram_df, aes(x = dist, y = gamma)) + geom_line(data = pred_var, aes(x = dist, y = gamma), color = "red") + labs(x = "Distance", y = "Semivariance") + theme_bw() + theme( axis.title.x = element_text(size = 14), # X轴标签大小 axis.title.y = element_text(size = 14), # Y轴标签大小 axis.text.x = element_text(size = 12), # X轴刻度字体大小 axis.text.y = element_text(size = 12) # Y轴刻度字体大小 )
内容的提问来源于stack exchange,提问作者Cassieleee
相关产品推荐
相关产品推荐

