2012-02-14 14 views
4

比如我應該添加到這個表達式:如何將對數記數圖的值從指數表示法更改爲格子包中的數值?

xyplot(a~b, groups=abc, data=super, 
     scales=list(x=list(log=TRUE),y=list(log=TRUE)), 
     panel = panel.grid) 

以有100個,而不是10^2?

+0

在秤名單你看着從文檔標籤元素?這聽起來像票。 '標籤的矢量(字符或表達式)在一起。也可以是像at.'這樣的列表。或者,我想知道是否可以在手動登錄之前對數據進行日誌轉換(基本上你現在正在這樣做) – 2012-02-14 22:31:04

回答

7

latticeExtra包有一些漂亮的功能,用於生成更好的對數軸標籤。在你的情況下,看看xscale.components.log10ticks

下面是一個例子,從help page拍攝,顯示基本上你想要的東西(雖然這裏是y軸,讓你會想在x軸的標籤):

xyplot((1:200)/20 ~ (1:200)/20, type = c("p", "g"), 
    scales = list(x = list(log = 2), y = list(log = 10)), 
    xscale.components = xscale.components.fractions, 
    yscale.components = yscale.components.log10ticks) 

enter image description here


編輯,提供額外的例如通過原來的海報回覆註釋

library(latticeExtra) 
dat <- 10^seq(-3, 5) 
options(scipen=10) 
options(digits=10) 

xyplot(dat ~ dat, type = c("p", "g"), 
    scales = list(x = list(log = 2), y = list(log = 10)), 
    xscale.components = xscale.components.log10ticks, 
    yscale.components = yscale.components.log10ticks) 

enter image description here

+0

xscale.components = xscale.components.log10ticks將我的x軸10^8.0點轉換爲1e + 08而不是預期的100000000. – 2012-02-14 22:53:06

+0

如果你首先設置'options(scipen = 10)'(或者一些足夠大的數字),然後重做你的圖,它會在決定切換到指數表示法之前打印更多數字。這應該能解決你的問題。 – 2012-02-14 23:04:37

+0

當使用yscale.components = yscale.components.log10ticks y軸標籤消失,除了最小的標籤10 ... – 2012-02-15 21:16:16

相關問題