您正在尝试混合两种完全不同的绘图范例。尽管看起来是一个基本的图形函数,plot
hexbin-plot 方法实际上是一个基于网格的绘图函数。此外,它是一种 S4 方法,这意味着您需要使用showMethods
它才能真正看到它。(我不知道您par
是否有任何影响。(它不影响我使用的示例。)
showMethods('plot', class="hexbin", includeDefs=TRUE)
这是参数列表:
.local <- function (x, style = "colorscale", legend = 1.2,
lcex = 1, minarea = 0.04, maxarea = 0.8, mincnt = 1,
maxcnt = max(x@count), trans = NULL, inv = NULL, colorcut = seq(0,
1, length = min(17, maxcnt)), border = NULL, density = NULL,
pen = NULL, colramp = function(n) LinGray(n, beg = 90,
end = 15), xlab = NULL, ylab = NULL, main = "", newpage = TRUE,
type = c("p", "l", "n"), xaxt = c("s", "n"), yaxt = c("s",
"n"), clip = "on", verbose = getOption("verbose"))
如果您想修改其布局,您应该使用作为值返回的内容:
plot.vp the hexViewport constructed and used.
legend.vp if a legend has been produced, its viewport.
如果您查看代码,它似乎会接受一个参数“legend”,它是图例视口的宽度(以英寸为单位),因此请尝试修改它:
plot(bin, legend=1.0)
顺便一提; 关于 ggplot 的困惑来自一种名为 gplot.hexbin 的绘图方法,但“g”是对“grid”的引用,而不是对“ggplot”的引用