Вопрос

Я создаю серию графиков в 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

Спасибо

Пол.

Это было полезно?

Решение 3

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

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()

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

Другие советы

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

Взгляни на 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();

С ggplot и решеткой вы можете использовать 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()

щелкните правой кнопкой мыши на выводимом графике Скопируйте в виде метафайла затем сохраните график в документе Word (щелкните правой кнопкой мыши, чтобы отредактировать рисунок для скрытия объекта "График в Microsoft Office drawing").

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top