2015-05-26 4 views
7

Всякий раз, когда я пытаюсь экспортировать R-график, либо с RStudio с pdf(), я нахожу, что все элементы переразмерны соответственно, но не текст. Это может привести к отключению заголовков.Зачем R изменять размер всего графика, но не экспортировать текст?

Попробуйте изменить размер участка в Rstudio (или использовать pdf("plot.pdf", width, height) в базе R):

ggplot(data=data.frame(x=rnorm(100), y=rnorm(100)), aes(x, y)) + 
    geom_point() + 
    geom_text(aes(label=rep("a", 100))) + 
    labs(y="Title that is very loooooooooooooooooooooooooooooooooooooooong") 

Когда width x height является 5 x 5, текст негабаритные и название светотеневой. Но как 10 x 10, все вписывается.

Так что текст остается неизменным «размером», независимо от того, что я указываю для размера сюжета. Является ли это правильным пониманием того, как экспортировать графику R?

Если это так, что вы обычно делаете, чтобы убедиться, что текст в экспортируемой графике вписывается?

+0

-Х = S вашего понимания правильно, хотя я думаю, что его больше дизайнерского решения со стороны Adobe, а не авторы АиРа , Это не является особенностью формата pdf, который будет масштабироваться шрифтами. –

+0

Кроме того, поведение, которое вы видите в средстве просмотра PDF, вероятно, будет зависеть от его дизайна. Это скорее вопрос RStudio, так как база R не имеет функции SaveAs с параметрами калибровки. –

+0

Я тестировал с помощью 'pdf ('file.pdf', width, height)' и результат тот же. Проблема, похоже, связана с экспортом 'pdf', а не с' RStudio' как таковой. – Heisenberg

ответ

7

Наконец-то я вижу интуитивность этого поведения. Когда я разместил вопрос, я ожидаю, что R изменит размер всех элементов внутри графика, когда я изменю размер графика.

Однако на самом деле размер ВСЕХ элементов фиксирован, включая текст, линию, отметку и т. Д., А повторная калибровка графика только изменяет размер графика при сохранении относительного положения элементов.

Чтобы увидеть это, выполните pdf("small.pdf",5,5); plot(1,1); dev.off() and pdf("large.pdf",10,10); plot(1,1); dev.off(). Затем, если вы показываете два графика, увеличьте масштаб так, чтобы физический размер на экране 5x5 и 10x10, размеры элементов должны быть одинаковыми между двумя графиками.

Так лучшая практика, вероятно, (пожалуйста, поделитесь своей практике):

  1. при печати указать размеры элементов, которые имеют смысл по отношению друг к другу,
  2. при экспорте, выберите размер участка, который все подходит в,
  3. импорта в латекс с помощью \includegraphics[width=\textwidth, height=\textheight,keepaspectratio]
Смежные вопросы