Po ustawieniu parametrów graficznych z par(fig)
i zresetowaniu ich za pomocą oryginalnych parametrów, tekst na marginesach wykresów nie jest zapisywany. Dopiero po wykonaniu innej komendy niskiego poziomu w obszarze zostanie wykonany region kreślenia, który zadziała ponownie. Oto przykład:po par (rys.) Tekst na marginesach nie jest zapisany
dev.off()
plot(1:10)
op <- par(no.readonly = TRUE)
mtext("hello", adj=1, col=2) # written as expected
par(fig=c(0.1,0.6,0.5,0.8), new=TRUE)
par(op)
mtext("hello ", adj=1, col=3) # not written
mtext("hello ", adj=1, col=3, line=-1) # works inside plot region
mtext("hello ", adj=1, col=3) # still not written
text(50,20,"") # or abline # do something inside plot region
mtext("hello ", adj=1, col=3) # now it works!
Może to być związane z innym pytaniem napisałem pod after par(fig), mtext is slightly off.
Poza tym mtext
, axis
również nie działa. Poza tym text/abline/points
, title(main="dummy")
również rozwiązuje problem.
Czy może to być błąd R? Czy może czegoś brakuje?
Podejrzewam, że "par (op)" rozpoczyna nowy wątek. Zamień 'par (op)' na 'par (fig = op $ fig, nowy = TRUE)' i działa zgodnie z oczekiwaniami. –
Teraz to jest interesujące! 'par (fig = op $ fig)' wystarcza bez 'new', btw .. To nie wyjaśnia, dlaczego działa w obszarze kreślenia, ale nie na marginesie, chociaż ... –