Автоматическая печать, маркировка и сохранение изображений - PullRequest
0 голосов
/ 09 января 2020

Я написал небольшую функцию для черчения. (См. Рисунок 1 для примера результата «Schritt1 (Int)») * enter image description here

Теперь мои вопросы:

  1. Как я могу добавить Varname 'y' (в данном случае 'Int') вместо 'mean of y' на картинке?

  2. Как графики могут быть сохранены как изображения как часть функции ?

  3. Если 2.) работает, как я могу сделать Varname частью имени изображения?

  4. Mind, который я хочу создать 2 сюжета и 2 картинки с одной функцией. Если это слишком сложно, я бы просто сделал две функции.

Я благодарен за любое решение и совет по любому вопросу.

Schritt1 <- function(y) { 


  interaction.plot(x$`Single Posture`, x$Sex, y)
  interaction.plot(x$Person, x$Pos, y)


}

Schritt1 (Int)
Schritt1 (Con)
Schritt1 (Car)
Schritt1 (Pow)


Schritt1(CoP)
Schritt1(Com)
Schritt1(Eth)
Schritt1(Tea)
Schritt1(Adv)

Schritt1(EBD)
Schritt1(Ask)
Schritt1(PP)
Schritt1(PC)
Schritt1(Der)

Schritt1(Ser)

Schritt1(Med)
Schritt1(Lea)
```


1 Ответ

1 голос
/ 09 января 2020

Чтобы получить имя переменной y, вы можете использовать

deparse(substitute(y))

, как предложено Свеном Хоэнштейном ({ ссылка }).

Если вы хотите экспортировать изображение, вы можете дать R каталог для сохранения изображения. Вы можете установить стандартный путь к вашему рабочему каталогу, примерно так:

Schritt1 <- function(y, dir=F){
if(!dir){
directory <- getwd()
}else{
directory <- dir
}
name <- deparse(substitute(y))
pdf(file=paste(dir, "/", name, ".pdf", sep = ""))
interaction.plot(x$`Single Posture`, x$Sex, y)
dev.off()
}

Если в аргументах функции не задан каталог, в этом случае в рабочем каталоге будет сохранен pdf выходного графа. Другие устройства, такие как jpeg, должны использоваться аналогично устройству pdf.

Чтобы создать два изображения, вам нужно только дважды вставить «часть изображения» в вашу функцию:

Schritt1 <- function(y, dir=F){
if(!dir){
directory <- getwd()
}else{
directory <- dir
}
name <- deparse(substitute(y))
#image one
pdf(file=paste(dir, "/", name, "1.pdf", sep = ""))
interaction.plot(x$`Single Posture`, x$Sex, y)
dev.off()
#image two
pdf(file=paste(dir, "/", name, "2.pdf", sep = ""))
interaction.plot(x$Person, x$Pos, y)
dev.off()
}

Что касается графиков взаимодействия, я не уверен, можно ли просто редактировать имена осей, вы можете просто попытаться включить ylab :

Schritt1 <- function(y, dir=F){
if(!dir){
directory <- getwd()
}else{
directory <- dir
}
name <- deparse(substitute(y))
#image one
pdf(file=paste(dir, "/", name, "1.pdf", sep = ""))
interaction.plot(x$`Single Posture`, x$Sex, y, ylab= paste("mean of", name, sep= " "))
dev.off()
#image two
pdf(file=paste(dir, "/", name, "2.pdf", sep = ""))
interaction.plot(x$Person, x$Pos, y, ylab= paste("mean of", name, sep= " "))
dev.off()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...