Pozdrowienia,
Obecnie wykonuję następujące czynności w języku 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))
Snip of 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
...
Ostatnie dwa wiersze przedstawiają potrzebne informacje, a wynik przypomina: Niebieska linia to entropia w bajtach artefaktu, który mnie interesuje. Zielone linie reprezentują entropię zmian.
Teraz na tym wykresie działa dobrze, ponieważ nie ma ogromnej różnicy w skalach. Ale mam inne wykresy, na których zielone linie stają się tak małe, że nie widać.
Rozwiązanie, którego szukałem, obejmowało dwie rzeczy:
- Aby przenieść zielone pionowe linie na drugi wykres, tuż poniżej pierwszego, z własną osią y, ale wspólną osią x.
- Aby zapewnić skalę logarytmiczną, ponieważ bardziej interesuje mnie „wielkość” niż określone wartości.
Z góry dziękuję!
PS Jeśli ktoś może mi również powiedzieć, jak mogę umieścić „drobne tiki” w skali X w odniesieniu do miesięcy, doceniam :-) Jeśli są to zbyt wiele pytań do jednego postu, mogę je dalej podzielić.
źródło
Myślę, że możesz dostać to, czego chcesz
ggplot2
. Korzystając z poniższego kodu, mogę utworzyć:Oczywiście rzeczy takie jak kolory linii można zmienić na dowolne. Na osi X określiłem linie główne w latach i linie pomocnicze w miesiącach.
źródło