Crie gráficos editáveis a partir de R
Pergunta
Estou criando uma série de gráficos em R (estou usando ggplot2, mas isso não é essencial) e quero poder salvar minha saída para poder editá-la para uso futuro. lendas sobre, ou ajustar cores, etc.Eu vi que o ggplot2 tem um comando salvar, mas parece produzir PDFs ou bitmaps, nenhum dos quais é particularmente editável
Como outras pessoas fazem isso?Alguma boa idéia?
Aqui está um exemplo de código para produzir um gráfico de amostra;
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
Obrigado
Paulo.
Solução 3
Obrigado pelas respostas, eu brinquei com isso e, depois de alguma ajuda do meu amigo, Google, encontrei o Cairo pacote, que permite a criação de arquivos SVG, posso editá -los em 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()
Agora eu só tenho que brincar com as várias configurações para obter meu enredo o mais bom possível antes de escrever o arquivo.
Outras dicas
Outros formatos editáveis:
Dê uma olhada help(devices)
para outros formatos disponíveis:esses incluem svg
, pictex
e xfig
, todos eles editáveis em maior ou menor grau.
Observe que os PDFs podem ser editados, por exemplo, usando o Omnigraffle
ferramenta disponível para OSX da Apple.
Outras maneiras de registrar dados de plotagem:
Além disso, você pode gravar comandos do R no subsistema gráfico para repeti-los mais tarde - dê uma olhada em 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.
Usando Rscript para criar um gráfico repetível e editável:
Normalmente eu uso uma terceira estratégia, que é copiar minha sessão R em um arquivo Rscript, que posso executar repetidamente e ajustar os comandos de plotagem até fazer o que desejo:
#!/usr/bin/Rscript
x = 1:10
pdf("myplot.pdf", height=0, width=0, paper="a4")
plot(x)
dev.off();
Com ggplot e treliça, você pode usar save
Para salvar o objeto da plotagem no disco e depois load
depois e modifique -o. Por exemplo:
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()
Clique com o botão direito do mouse na cópia da plotagem de saída como metafile e salve a plota