格式化和从R包操纵情节“hexbin”(Formatting and manipulating a

2019-07-22 00:18发布

我生成使用包一个情节hexbin

# install.packages("hexbin", dependencies=T)
library(hexbin)


set.seed(1234)
x <- rnorm(1e6)
y <- rnorm(1e6)
hbin <- hexbin(
  x   = x
  , y = y
  , xbin = 50
  , xlab = expression(alpha)
  , ylab = expression(beta)
)


## Using plot method for hexbin objects:
plot(hbin, style = "nested.lattice")

abline(h=0)

这似乎产生S4对象( hbin ),然后我用阴谋plot 。 现在我想用添加水平线到情节abline ,但不幸的是这给了错误:

plot.new尚未被称为

我还不知道,如何可以操纵例如轴标签(α和β是数字内)的位置,更改图例等的位置

我熟悉OOP,但到目前为止,我无法找到标图()如何处理对象(它调用该对象的某些方法?)和我如何可以操纵所产生的阴谋。

为什么我不能简单地画一条线到情节?

如何操作轴标签?

Answer 1:

使用十六进制斌格版- hexbinplot() 随着panel可以添加您的线路,并与style ,你可以选择可视化六边形的不同方式。 检查帮助hexbinplot更多。

library(hexbin)
library(lattice)
x <- rnorm(1e6)
y <- rnorm(1e6)
hexbinplot(x ~ y, aspect = 1, bins=50, 
           xlab = expression(alpha), ylab = expression(beta), 
           style = "nested.centroids",
           panel = function(...) {
             panel.hexbinplot(...)
             panel.abline(h=0)
             })



Answer 2:

hexbin使用grid图形,而不是base 。 有类似的功能, grid.abline ,这可以通过指定一个斜率和截距上绘制图线,但所使用的坐标系是混乱:

grid.abline(325,0)

得到约你想要什么,但这里的拦截而用肉眼发现。

你会使用更幸运ggplot2

library(ggplot2)
ggplot(data,aes(x=alpha,y=beta)) + geom_hex(bins=10) + geom_hline(yintercept=0.5)



Answer 3:

我有很多的麻烦找了很多基本情节的调整(轴范围,标签等)与hexbin库,但我想出如何点导出到其他绘图功能:

hxb<-hexbin(x=c(-15,-15,75,75),
            y=c(-15,-15,75,75),
            xbins=12)

hxb@xcm    #gives the x co-ordinates of each hex tile
hxb@ycm    #gives the y co-ordinates of each hex tile
hxb@count  #gives the cell size for each hex tile

points(x=hxb@xcm, y=hxb@ycm, pch=hxb@count)

你可以只给这三个矢量到您通常使用的任何绘图工具..有大小缩放等常用的调整,但它远比固执hexplot功能更好。 我发现与GGPLOT2 stat_binhex的问题是,我无法让不吉利的东西是不同的大小...只是不同的颜色。

如果你真的想六边形,plotrix具有六边形绘图功能,我认为是好的。



文章来源: Formatting and manipulating a plot from the R package “hexbin”
标签: r oop plot package s4