r plot type




從R軟件包“hexbin”格式化和操作一個繪圖 (2)

我使用包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進行plot 。 現在我想使用abline為該圖添加一條水平線,但不幸的是,這給出了錯誤:

plot.new尚未被調用

我也不知道,我可以如何操縱軸標籤的位置(alpha和beta在數字內),改變圖例的位置等。

我熟悉OOP,但到目前為止,我無法找到plot()如何處理對象(是否調用對象的某些方法?)以及如何操作結果圖。

為什麼我不能簡單地畫一條線?

我如何操縱軸標籤?


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)


使用十六進制格的版本 - 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)
             })







s4