Создание редактируемых сюжетов из R - PullRequest
9 голосов
/ 12 января 2010

Я создаю серию графиков в R (я использую ggplot2, но это не обязательно), и я хочу иметь возможность сохранить свои выходные данные, чтобы потом их можно было редактировать для дальнейшего использования. Например, я мог бы хочу перемещать легенды или корректировать цвета и т. д. Я видел, что ggplot2 имеет команду сохранения, но, похоже, создает pdf или растровые изображения, ни одно из которых не является особенно редактируемым

Как другие люди делают это? Есть хорошие идеи?

Вот пример кода для создания примера графика;

library(ggplot2)
dataframe<-data.frame(fac=factor(c(1:4)),data1=rnorm(400,100,sd=15))
dataframe$data2<-dataframe$data1*c(0.25,0.5,0.75,1)
dataframe
testplot<-qplot(x=fac, y=data2,data=dataframe, colour=fac, geom=c("boxplot", "jitter"))
testplot

Спасибо

Paul.

Ответы [ 4 ]

7 голосов
/ 12 января 2010

Другие редактируемые форматы:

Посмотрите на help(devices) другие доступные форматы: они включают svg, pictex и xfig, все из которых доступны для редактирования в большей или меньшей степени.

Обратите внимание, что PDF-файлы можно редактировать, например, с помощью инструмента Omnigraffle, доступного для Apple OSX.

Другие способы записи данных графика:

Кроме того, вы можете записывать команды R в графическую подсистему для повторения позже - взгляните на dev.copy:

 Most devices (including all screen devices) have a display list
 which records all of the graphics operations that occur in the
 device. 'dev.copy' copies graphics contents by copying the display
 list from one device to another device.  Also, automatic redrawing
 of graphics contents following the resizing of a device depends on
 the contents of the display list.

Использование Rscript для создания повторяемого редактируемого графика:

Обычно я выбираю третью стратегию, которая заключается в копировании моего сеанса R в файл Rscript, который я могу многократно запускать и настраивать команды построения, пока он не выполнит то, что я хочу:

#!/usr/bin/Rscript
x = 1:10
pdf("myplot.pdf", height=0, width=0, paper="a4")
plot(x)
dev.off();
4 голосов
/ 12 января 2010

Спасибо за ответы, я поиграл с этим, и после некоторой помощи от моего друга Google я нашел пакет Cairo , который позволяет создавать файлы SVG, я могу затем отредактировать их в Inkscape .

library(Cairo)
Cairo(600,600,file="testplot.svg",type="svg",bg="transparent",pointsize=8, units="px",dpi=400)
testplot
dev.off()
Cairo(1200,1200,file="testplot12200.png",type="png",bg="transparent",pointsize=12, units="px",dpi=200)
testplot
dev.off()

Теперь мне нужно просто поиграть с различными настройками, чтобы улучшить свой график перед тем, как писать файл.

4 голосов
/ 12 января 2010

С помощью ggplot и lattice вы можете использовать save, чтобы сохранить объект графика на диск, а затем load его позже и изменить. Например:

save(testplot, file = "test-plot.rdata")

# Time passes and you start a new R session
load("test-plot.rdata")
testplot + opts(legend.position = "none")
testplot + geom_point()
0 голосов
/ 24 января 2017

щелкните правой кнопкой мыши на графике вывода Копировать как метафайл затем сохранить график в текстовом документе (щелкните правой кнопкой мыши, чтобы отредактировать изображение, чтобы преобразовать его в чертежный объект Microsoft Office)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...