www.mikrocontroller.net

Forum: PC-Programmierung R: Wie Sammel-Grafik beschriften?


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Johann L. (gjlayde) Benutzerseite
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi, hab heute meine ersten Gehversuche mit R gemacht. Auch wenn mir die 
Sprache selber ziemlich chaotisch erscheint, bin ich dank reichlich 
vorhandener Beispiele einigermassen fix vorangekommen.

Im Anhang ist ein 2x2 Boxplot. Die einzelnen Plots lassen sich einfach 
beschriften, aber ich hab keine Möglichkeit gefunden, eine 
Gesamtüberschrift/Erklärung für die gesamte Grafik hinzubekommen.

Ich hab versucht, ein Layout mit 5 Boxen zu verwenden:
 111
 ---
 2|3
 -+-
 4|5

 layout (matrix (c(1,1,2,3,4,5), 3, 2, byrow = TRUE), heights=c(1,4,4))
 plot.new()
 title (main="Text")

und Titel/Erklärung in $1 unterzubringen. Aber die Ränder werden so dick 
daß R ständig einen Fehler wirft, so daß ich diesen Ansatz aufgegeben 
hab.

Wie bekommt man da noch ne Gesamtüberschrift hin?

Hier noch das R-Skript
bits2bytes <- function (n) { max (1, (n+7) %/% 8) }

gmean <- function (x) { exp (mean (log(x))) }

bytestat <- function (x, col)
{
    b1 = x[(x$Bytes==1),][col];
    b2 = x[(x$Bytes==2),][col];
    b3 = x[(x$Bytes==3),][col];
    b4 = x[(x$Bytes==4),][col];
    c (x[col], b1, b2, b3, b4)
}

###########################################

func = "ltoa"

file_name = paste (func, ".data", sep="")
plot_name = paste (func, ".png", sep="")

x <- read.table (file_name, header=TRUE)

###########################################

colnames(x)[1] = "Old"
colnames(x)[2] = "New"

x$Gain     <- x$New - x$Old
x$"Gain %" <- 100 * x$Gain / x$Old
x$Bytes    <- factor (sapply (x$bits, bits2bytes))

###########################################

xlabels = c("1-4 Bytes", "1 Byte", "2 Bytes", "3 Bytes", "4 Bytes")

note1 = paste ("Measurement based on ", length (x$Old), " Samples",
               " from AVR ATmega168\nAVR-Libc 1.8.0 (SVN 2294)",
               sep ="")
note2 = paste ("The leftmost Plots show Data for all Values (1-4 Bytes).\n",
               "The 4 right Plots show Costs for n-Byte Values, respectively.",
               sep="")

titleOld = paste (func, ": AVR-Libc", sep="")
titleNew = paste (func, ": Tweaked", sep="")

red   = c("#ff8888", rep ("#ffbbbb", times=4))
green = c("#88ff88", rep ("#bbffbb", times=4))
blue  = c("#8888ff", rep ("#bbbbff", times=4))
blue2 = c("#aa88ff", rep ("#ccbbff", times=4))

lim <- c (min (x[1:2]), max (x[1:2]))

###########################################

png (file = plot_name, width=800, height=700, res=80)

par (mfrow = c(2,2))

boxplot (bytestat (x,1), main = titleOld, ylab="Ticks",
         col = red, ylim = lim, names = xlabels, sub = note1)
    abline (h=mean(x$Old), lty=3)

boxplot (bytestat (x,2), main = titleNew, ylab="Ticks",
         col = green, ylim = lim, names = xlabels, sub = note2)
    abline (h=mean(x$New), lty=3)

boxplot (bytestat (x,6), main="Speed Gain in Ticks", ylab="Gained Ticks",
         col = blue, names = xlabels)
    abline (h=mean(x$Gain), lty=3)

boxplot (bytestat (x,7), main="Speed Gain in %", ylab="Gained %",
         col = blue2, names = xlabels)
    abline (h=-gmean(-x$"Gain %"), lty=3)

dev.off()

Autor: peter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
haste schon mal
title(main="My title", outer=TRUE)
probiert

peter

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ahhh, ja. Damit geht's.

...und die Frames noch ein bisschen rumschubsen:
par (mfrow = c(2,2), oma=c(0, 0, 5, 0), mar=c(3.1, 3.1, 2.1, 1.1))
boxplot (...)
title (main=titleAll, line=3, outer=TRUE)

> *Background*
>
> R is such a graphics-rich analysis language, yet ironically the
> description of many of its graphics features are not explained
> visually.  R's graphical parameters are a bit overwhelming and the
> alphabetical order of the dozens and dozens of parameters — there
> are more than 70 — in the online documentation doesn't help beginners
> discern groups and relationships among these parameters very easily.

http://research.stowers-institute.org/efg/R/Graphi...

Dankeschön :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net