Как я могу изменить значения графика log-log с экспоненциальной записи на числовые значения в пакете решетки? - PullRequest
4 голосов
/ 15 февраля 2012

Например, что я должен добавить к этому выражению:

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

, чтобы иметь 100 вместо 10 ^ 2?

1 Ответ

7 голосов
/ 15 февраля 2012

Пакет latticeExtra имеет ряд изящных функций для создания более хороших меток для логарифмических осей.В вашем случае посмотрите на xscale.components.log10ticks.

Вот пример, взятый из справочной страницы , который показывает в основном то, что вы хотите (хотя здесь ось y получаетмаркировка на оси абсцисс):

 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


EDITED, предоставляя дополнительный пример для ответа на комментарии оригиналаплакат

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

...