Saudações,
Atualmente, estou fazendo o seguinte em R:
require(zoo)
data <- read.csv(file="summary.csv",sep=",",head=TRUE)
cum = zoo(data$dcomp, as.Date(data$date))
data = zoo(data$compressed, as.Date(data$date))
data <- aggregate(data, identity, tail, 1)
cum <- aggregate(cum, identity, sum, 1)
days = seq(start(data), end(data), "day")
data2 = na.locf(merge(data, zoo(,days)))
plot(data2,xlab='',ylab='compressed bytes',col=rgb(0.18,0.34,0.55))
lines(cum,type="h",col=rgb(0,0.5,0))
Recorte de summary.csv:
date,revision,file,lines,nclass,nattr,nrel,bytes,compressed,diff,dcomp
2007-07-25,16,model.xml,96,11,22,5,4035,991,0,0
2007-07-27,17,model.xml,115,16,26,6,4740,1056,53,777
2007-08-09,18,model.xml,106,16,26,7,4966,1136,47,761
2007-08-10,19,model.xml,106,16,26,7,4968,1150,4,202
2007-09-06,81,model.xml,111,16,26,7,5110,1167,13,258
...
As duas últimas linhas plotam as informações necessárias e o resultado se assemelha ao seguinte: Linha azul é a entropia em bytes do artefato que me interessa. Linhas verdes representam a entropia das mudanças.
Agora, neste gráfico, funciona bem porque não há uma grande diferença de escalas. Mas tenho outros gráficos em que as linhas verdes se tornam tão pequenas que não se pode ver.
A solução que eu procurava envolvia duas coisas:
- Para mover as linhas verticais verdes para um segundo gráfico, logo abaixo do primeiro, com seu próprio eixo y, mas com o eixo x compartilhado.
- Para fornecer uma escala logarítmica, já que estou mais interessado na "magnitude" do que nos valores específicos.
Desde já, obrigado!
PS Se alguém também pode me dizer como eu poderia colocar "ticks menores" na escala x referente aos meses, eu aprecio :-) Se essas são perguntas demais para um único post, posso dividi-las ainda mais.
fonte
Eu acho que você pode conseguir o que deseja usando
ggplot2
. Usando o código abaixo, eu posso produzir:Obviamente, coisas como cores de linha podem ser alteradas para o que você quiser. No eixo x, especifiquei linhas principais em anos e linhas menores em meses.
fonte