Seite 1 von 1

Grafiken in Tabellenspalte/-zelle einsetzen

Verfasst: So Nov 26, 2023 1:31 pm
von Konkordanz
Hi, ich komme einfach nicht weiter und hoffe, hier HIlfe zu finden. Im Prinzip versuche ich folgendes:
Ich habe eine Tabelle und möchte diese in eine PDF schreiben. Soweit sogut. Ich möchte jedoch, dass in die letzte Spalte eine kleine Grafik eingesetzt wird. Diese Grafik habe ich zuvor als Plot erzeugt. Das funktioniert allerdings nicht.

Mein Vorgehen:
_________________________________________________________
# Beispiel-Daten erstellen
data <- data.frame( Kategorie = c("A"), Wert = c(3))

#Festlegen der Werte für den Punktestrahl
wert1 <- 30
wert2 <- 58
wert3 <- 40

# Plot erstellen
punktlinie <- ggplot(data, aes(x = Wert, y = Kategorie)) +
geom_segment(aes(x = wert1, xend = wert2, yend = Kategorie), size = 1, linetype = "dotted", color = "blue") +
geom_point(x = wert3, y = "A", size = 3, color = "red") +
labs(x = "", y = "") +
theme_void() #

# Speichere den ggplot als Bild ab und lade es in die PDF
ggsave("punktlinie_plot.png", plot = punktlinie, device = "png", width = 5, height = 2, dpi = 100)
punktlinie_img <- readPNG("punktlinie_plot.png")
_________________________________________________________

So, jetzt habe ich die benötigte Grafik erzeugt und als png abgespeichert. Und ab hier komme ich nicht mehr weiter. Ich schaffe es zwar, mithilfe von grid.draw die Tabelle und mithilfe von grid.raster die Grafik in die PDF zu schreiben. Allerdings stehen diese dann nur untereinander. Ich möchte aber, dass das Bild als in die letzte Spalte der Tabelle geschrieben wird. Hat jemand eine Idee, wie ich das umsetzen kann?

Hinweis: Die Tabelle, welche in der PDF landet, darf nicht als Bilddatei implementiert sein. Der Tabellentext muss in der PDF herauskopierbar sein.
Danke!

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Verfasst: So Nov 26, 2023 2:44 pm
von bigben
Keine Ahnung und keine Erfahrung, aber vielleicht einen interessanten Link kann ich anbieten: https://cran.r-project.org/web/packages ... Poster.pdf

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Verfasst: Di Nov 28, 2023 11:05 am
von ruedi_br
Es gäbe im "grid"-System z.B. den Befehl grid-layout(1, 2, ...): erzeugt eine Zeile mit 2 Spalten.
HTH Ruedi

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Verfasst: Di Nov 28, 2023 1:30 pm
von bigben
Also ich glaube nicht, dass es klug ist, für sowas auf low-level Funktionen, auf grid_draw etc., zuzugreifen. Wenn Du Dich durchringen könntest, Deine Tabelle mit flextable zu machen (was im Allgemeinen keine schlechte Idee ist), dann kannst Du da noch in R und bevor Du Dich entscheidest, ob das nun HTML, PDF oderWord werden soll, Deine Grafiken in die Tabelle einfügen. Schau mal hier https://ardata-fr.github.io/flextable-b ... ntent.html in Kapitel 8.7.3, ob Du Deine Grafiken wirklich selbst erstellen und einbinden willst, oder ob die Funktion linerange nicht schon das tut, was Du willst. Wenn Du wirklich Deine eigenen Plots erzeugen und als png einbinden möchtest, steht das auf der gleichen Seite etwas weiter oben, als Kapitel 8.5.

Viel Erfolg damit,
Bernhard

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Verfasst: So Dez 31, 2023 7:05 pm
von Konkordanz
Danke für eure Hilfen!
bigben hat geschrieben: Di Nov 28, 2023 1:30 pm Also ich glaube nicht, dass es klug ist, für sowas auf low-level Funktionen, auf grid_draw etc., zuzugreifen. Wenn Du Dich durchringen könntest, Deine Tabelle mit flextable zu machen (was im Allgemeinen keine schlechte Idee ist), dann kannst Du da noch in R und bevor Du Dich entscheidest, ob das nun HTML, PDF oderWord werden soll, Deine Grafiken in die Tabelle einfügen. Schau mal hier https://ardata-fr.github.io/flextable-b ... ntent.html in Kapitel 8.7.3, ob Du Deine Grafiken wirklich selbst erstellen und einbinden willst, oder ob die Funktion linerange nicht schon das tut, was Du willst. Wenn Du wirklich Deine eigenen Plots erzeugen und als png einbinden möchtest, steht das auf der gleichen Seite etwas weiter oben, als Kapitel 8.5.

Viel Erfolg damit,
Bernhard
Das sieht interessant aus. Ich habe aber meine gesamte Syntax bereits auf gridextra aufgebaut. Das heißt, ich erzeuge eine PDF, teile diese in Raster auf und füge dort die Grobs ein (Überschriften, Tabellen, Abbildungen). Weißt du, ob ich flextable hier irgendwie einbinden könnte?