График R: как правильно настроить привередливые поля?

У меня проблема с полями в моем графике R-линии... Я понимаю, что на сайте есть много вопросов, связанных с этим, но ни один из них, похоже, не попадает в точку, и поэтому я решил, что просто спрошу конкретно с детали включены ... Я также извиняюсь, если чрезмерно описательный / многословный!

Я строю линейный график R с несколькими линиями (4) и пользовательскими отметками (символьная/описательная информация) в моменты времени, а не 0:3. Все отлично, кроме краев.

Итак, сначала галочки отрезаются от экрана. Однако ось выравнивается, легенда отображается, все точки данных отображаются и т. д. В остальном все выглядит правильно. Здесь я установил mar = c(5, 4.1, 4.1, 4.0)

Я пытаюсь изменить так, чтобы метки отображались с помощью: mar = c(5, 4.1, 4.1, 4.0) + x), используя несколько значений для x (0,5, 1,0, 2,5 и т. д.). Это изменяет оси, поэтому они не выравниваются, график обрезается и т. д., а метки снова исчезают с экрана.

Затем я пытаюсь изменить параметры dev.new(...), используя: dev.new(width=4, height=3, unit="in") и другие значения для w и h. По-прежнему нет решения ... выравнивание отключено, ось x отсутствует, метки осей и галочки отключены и т. д.

Любая помощь очень и очень ценится. Я знаю, что это может быть привередливый график для таких примеров, как этот, но в этом примере я предпочитаю график R, а не ggplot.

Заранее спасибо...

Вот сопоставимый код R:

bird <- c ("2", "4", "3.5", "8")
dog <- c ("8", "6", "10", "4")
fish <- c("10", "8", "5", "1")
cat <- c("12", "6", "3", "1") 

time = c("0", "1", "2", "3")  

  dev.new() 
  plot(time, bird, type="o", col="darkblue", xlab="time points", ylab="average scores of pets", main = "average pet scores over time", ylim=c(0, 15), cex.main=1.2, axes=FALSE) 
  par(las=2, mar = c(5, 4.1, 4.1, 4.0)) 
  axis(1, at=0:3, labels= c("pre-lim", "first appointment", "3 month check-up", "12 month check-up")) 
  axis(2) 
  lines(time, dog, type="o", col="forestgreen") 
  lines(time, fish, type="o", col="cornflowerblue") 
  lines(time, cat, type="o", col="darkturquoise") 
  legend (2.25, 14.3, legend = c("bird", "dog", "fish", "cat"), fill= c("darkblue", "forestgreen", "cornflowerblue", "darkturquoise"))

введите здесь описание изображения


person ClareFG    schedule 01.02.2019    source источник


Ответы (1)


Я думаю, что комбинация dev.new() и par(mar = c(10, 5, 1, 1)) дает достойный сюжет.

dev.new()
par(las = 2, mar = c(10, 5, 1, 1)) 

введите здесь описание изображения

person Kipras Kančys    schedule 01.02.2019
comment
Спасибо .. Думаю, я просто недостаточно хорошо поигрался с полями, чтобы получить такой результат. Я ценю вашу помощь. -CG - person ClareFG; 05.02.2019