手动创建带有科学记数法标签的绘图轴标签与坐标值不同

问题描述

简短背景:我正在尝试为 R 中的绘图创建一个自定义轴,其中轴标签是数字但不对应于它们所在的坐标值。我希望 R 以科学记数法格式化标签,因为现在它们显示为“10000000”,这并不理想。

长背景:我正在制作多面板图形,其中每个面板都是填充的等高线图。 filled.contour 函数不会制作多面板图形,所以我使用了 .filled.contour,它消除了图例 - 所以我一直在手动制作图例。我使用 rect 创建覆盖调色板的矩形堆栈,并使用 axis标记图例上的值。但是,图例上的标签基于 z 值,而不是 y 值,因此我有一个带有数字标签的轴,这些标签标签所在的坐标不匹配。当我手动将这些数值提供给 axis 时,它顽固地将它们格式化为非科学记数法,当数值为数千万时,这是次优的。

这是当前编写的代码

breaks <- pretty(limits,n = 6)
          
marks <- (breaks - limits[1])/(limits[2] - limits[1]) # y-values in plot region go from 0 to 1
          
axis(side = 4,at = marks,labels = breaks,las = 1,tick = T,pos = 1.21,yaxs = "i",cex.axis = cex_legend,tcl = tickle)

以前,我只是调整了等高线图的 y 值以跨越 z 值的范围 (limits),以便 atlabels 参数匹配:

axis(side = 4,at = pretty(limits,n = 6),labels = T,tcl = tickle)

当我这样做时,标签用科学记数法很好地格式化。 (我会在实际 y 轴上使用未格式化的标签遇到同样的问题,因为标签和坐标不匹配,但由于 y 轴上的值只是从 0 到 1,它们的格式不是问题。)出于我不会讨论的原因,现在最好对等高线图使用“真实”y 值,但这会导致颜色图例轴上的标签未格式化。

如果我只是制作一些绘图,我可以手动创建标签,但我正在制作大量带有所有不同图例的图形,因此我需要能够自动化。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)