Hexsticker unter R erstellen

Unter R gibt es ein eigenes Paket, um die beliebten HexSticker zu erzeugen. Da baue ich mir doch gerne gleich mehrere für meine eigenen Pakete.
R
ubuntuusers
Autor:in

Joe Slam

Veröffentlichungsdatum

24 Juli 2024 - 19:33

Geändert

24 Juli 2024 - 19:32

Die Welt von R hat viele faszinierende Aspekte, aber einer der sichtbarsten und vielleicht auch der buntesten sind die Hexsticker. Diese kleinen, sechseckigen Aufkleber sind mehr als nur Dekoration – sie sind ein Symbol für die Community, die Leidenschaft und die Kreativität, die in der R-Welt steckt. Die Magie der Hexsticker

Ich war Anfang Juli auf der useR2024 in Salzburg, und wenn man auf so eine Konferenz geht, merkt man schnell, dass Hexsticker überall zu finden sind. Doch es geht nicht nur um das Sammeln – jeder Hexsticker erzählt eine Geschichte. Manche Sticker gibt es nur, wenn man einen bestimmten Vortrag oder Workshop besucht, andere bekommt man nur dann, wenn man eine Frage bei einer Postersession stellt. Es wird fast zu einer Art Schatzsuche, bei der man sich besonders fühlt, wenn man einen seltenen Sticker ergattert.

Sticker-Beute

Inspiriert von dieser Stickerjagd und dem allgemeinen Enthusiasmus habe ich mich entschlossen, für meine eigenen R-Pakete auch solche Hexlogos zu erstellen.

eigene Hexsticker erzeugen

In R gibt es dafür ein eigenes Paket, das {hexSticker} heisst.

# Paket installieren
install.packages("hexSticker", dependencies = TRUE)

Der grundlegende Aufruf lautet

sticker(BILD, package="PAKETNAME", filename="Sticker.png")

Dabei kann das Aussehen über mehrere Parameter verändert werden:

  • s_x, s_y Position des Bildes

  • s_width, s_height Größe des Bildes

  • p_x, p_y Position des Paketnamens

  • p_color, p_family, p_fontaface, p_size Texteigenschaften des Paketnamens

  • h_fill, h_color Rahmen- und Füllfarben des Hexagon

  • h_size Größe des Hexagon

  • url optionale Webadresse

  • u_x, u_y Position der URL

  • u_color, u_family, u_angle, u_size Texteigenschaften der URL

Das BILD kann ein R-Plot oder eine Bilddatei sein.

Für mein R-Buch habe ich so folgenden Sticker erzeugt:

library(hexSticker)
library(ggplot2)
# lade Daten
load(url("https://www.produnis.de/R/data/epa.RData"))

# plotten
titelbild <- ggplot(epa) +
  aes(x=age) +
  geom_histogram(aes(y=after_stat(density)),
                 color="white", lwd=0.3,
                 fill="#8a658a") +
  stat_density(geom="area",
               color="blue",
               fill="seagreen3",
               linetype="dotted",
               alpha=0.5)+
  stat_function(fun=dnorm,
                args=(c(mean=mean(epa$age),sd=sd(epa$age))),
                color = "red",
                linetype = "dashed") +
  theme_void()
#----------------------------------------------------------------------

# Sticker erzeugen
sticker(titelbild, package="jgsbook", 
        p_color="white", p_x=0.7, p_size=20,
        s_x=1.05, s_y=1.06, s_width=1.5, s_height=1.4,
        h_fill="#07A1E2", h_color="#185191",
        url="produnis.de/R", u_size=5, u_color="white",
        filename="jgsbook.png")

Und auch mein trainingslageR hat bereits einen Hexsticker. Hierfür habe ich allerdings das Hintergrundbild mit GIMP vorbereitet und dann “nur” eingelesen.

sticker("trainingslageR-Vorlage2.png", 
        package="t", p_color="white", p_x=0.7, p_size=0.001,
        s_x=1, s_y=1, s_width=1.02, s_height=1.02,
        h_fill="white", h_color="#185191",
        url="github.com/produnis/trainingslager", 
        u_size=4.2, u_color="white", u_y=0.06,
        filename="trainingslageR-hexsticker.png")