Grafiken in Tabellenspalte/-zelle einsetzen

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Konkordanz
Beiträge: 7
Registriert: So Sep 10, 2023 9:06 am

Grafiken in Tabellenspalte/-zelle einsetzen

Beitrag 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!
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Beitrag von bigben »

Keine Ahnung und keine Erfahrung, aber vielleicht einen interessanten Link kann ich anbieten: https://cran.r-project.org/web/packages ... Poster.pdf
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Beitrag 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
fortune(111)
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Konkordanz
Beiträge: 7
Registriert: So Sep 10, 2023 9:06 am

Re: Grafiken in Tabellenspalte/-zelle einsetzen

Beitrag 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?
Antworten