: ※ 引述《coke228 (coke...)》之銘言:
: : [問題類型]:
: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: : [軟體熟悉度]:
: : 入門(寫過其他程式,只是對語法不熟悉)
: : [問題敘述]:
: : 我的資料範圍是0.1到500 我想畫圖 但希望2以下是線性坐標 2以上是log坐標 請問可行
: : 嗎?
library(lattice)
library(data.table)
library(dplyr)
library(magrittr)
# data generation
dat = rnorm(50, 0, 100) %>% abs() %>% tbl_dt() %>%
setnames("x") %>% mutate(y = 3*x+rnorm(nrow(.)))
# scale function
f = function(x) {
xt = x
xt[xt >= 2] = xt[xt >= 2] %>% log10() %>% add(2)
return(xt)
}
# plot
label = c(0, 2, 50*c(1,2,4))
xyplot(y ~ f(x), dat, scale = list(
x = list(at = f(label), label = label,
limit = c(0, f(max(dat$x))*1.1))))