Попробуйте следующее:
set style fill transparent solid 0.35 noborder
set style circle radius 0.02
plot 'test' u 1:2 with circles lc rgb "blue", \
'' u 1:2 every 100 w circles lc rgb "red" fs solid 1.0 border lt -1
Как вы можете видеть, вы можете указать для каждого набора данных, использовать ли прозрачность и какие цвет в использовании. Если ваши данные состоят из двух значений (x и y позиции круга), вы должны указать радиус круга через set style circle ...
. Если ваши данные имеют три строки, вы можете использовать третье значение, чтобы указать радиус круга для каждой точки данных. Вы можете играть с уровнем прозрачности, который колеблется от 0 (полная прозрачность) до 1 (без прозрачности).
В R много инструментов для профилирования, как упоминал Дирк. Если вам нужна простота tic / toc, то вы можете сделать это и в R.
РЕДАКТИРОВАТЬ: я каннибализировал функциональность сбора мусора из пакета MATLAB, и теперь tic
позволяет вам выбрать, хотите ли вы узнать общее прошедшее время или только время пользователя.
tic <- function(gcFirst = TRUE, type=c("elapsed", "user.self", "sys.self"))
{
type <- match.arg(type)
assign(".type", type, envir=baseenv())
if(gcFirst) gc(FALSE)
tic <- proc.time()[type]
assign(".tic", tic, envir=baseenv())
invisible(tic)
}
toc <- function()
{
type <- get(".type", envir=baseenv())
toc <- proc.time()[type]
tic <- get(".tic", envir=baseenv())
print(toc - tic)
invisible(toc)
}
Использование, например, tic(); invisible(qr(matrix(runif(1e6), nrow=1e3))); toc()
Прямых эквивалентов tic и toc не существует.
См. help(system.time)
, а также руководство по расширению R для профилирования. Обсуждение инструментов профилирования и профилирования также содержится на слайдах «Введение в HPC с R», на которые ссылается [Task] High Performance Computing with R
Существует относительно новый пакет tictoc, который воспроизводит функции именно так, как вы бы использовали их в Matlab.
http://cran.r-project.org/web/packages/tictoc/index.html
## Basic use case
tic()
print("Do something...")
Sys.sleep(1)
toc()
# 1.034 sec elapsed
Просто для полноты: на самом деле вы можете «имитировать» тик и ток в R, так что вы можете написать
tic
## do something
toc
без скобок. Хитрость заключается в том, чтобы использовать функцию print
, как показано в Fun: tic и toc в R :
tic <- 1
class(tic) <- "tic"
toc <- 1
class(toc) <- "toc"
print.tic <- function(x, ...) {
if (!exists("proc.time"))
stop("cannot measure time")
gc(FALSE)
assign(".temp.tictime", proc.time(), envir = .GlobalEnv)
}
print.toc <- function(x,...) {
if (!exists(".temp.tictime", envir = .GlobalEnv))
stop("did you tic?")
time <- get(".temp.tictime", envir = .GlobalEnv)
rm(".temp.tictime", envir = .GlobalEnv)
print(res <- structure(proc.time() - time,
class = "proc_time"), ...)
invisible(res)
}
, поэтому ввод
tic
Sys.sleep(2)
toc
должен привести к результатам. примерно так:
user system elapsed
0.000 0.000 2.002
Как я уже сказал, это уловка; system.time
, Rprof
и такие пакеты, как rbenchmark
являются способом измерения времени вычисления в R.
There is a MATLAB emulation package matlab on CRAN. It has implementations of tic
and toc
(but they look very similar to the functions in Richie Cottons answer; "elapsed" is used instead of "user.self" in proc.time()
)
> tic
function (gcFirst = FALSE)
{
if (gcFirst == TRUE) {
gc(verbose = FALSE)
}
assign("savedTime", proc.time()[3], envir = .MatlabNamespaceEnv)
invisible()
}
<environment: namespace:matlab>
> toc
function (echo = TRUE)
{
prevTime <- get("savedTime", envir = .MatlabNamespaceEnv)
diffTimeSecs <- proc.time()[3] - prevTime
if (echo) {
cat(sprintf("elapsed time is %f seconds", diffTimeSecs),
"\n")
return(invisible())
}
else {
return(diffTimeSecs)
}
}
<environment: namespace:matlab>