Fehlerhafter pdf Export mit und ohne Cairo

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Werekorden
Beiträge: 83
Registriert: So Feb 04, 2018 7:52 pm

Re: Fehlerhafter pdf Export mit und ohne Cairo

Beitrag von Werekorden »

Hallo EDI,

Danke für deinen Versuch.

Es scheint also daran zu liegen, dass ich eine SVG-Datei mit image_read einlesen will?!

Ich bekomme ein super pdf hin:
cairo.pdf
(39.21 KiB) 39-mal heruntergeladen
Sobald aber die SVG-Datei als Logo mit deinem Code angehängt wird...
test_final.pdf
(72.33 KiB) 21-mal heruntergeladen

Dein angepasster Code dazu:

Code: Alles auswählen

library(ggplot2)
library(hrbrthemes)
library(scales)
library(Cairo)
library(extrafont)
extrafont::loadfonts()
#font_import()
#loadfonts()
#Dateneingabe
Konz_x <- c(47143480, 4714348, 4714, 2357, 1179, 471)
CT_Wert_y <- c(18.68, 22.595, 33.004, 34.290, 35.369, 35.271)
data.frame(Konz_x, CT_Wert_y)
p <- data.frame(Konz_x, CT_Wert_y)
p

#Model-Erstellung für Formeldarstellung in plot 
model <- lm(CT_Wert_y ~ log(Konz_x))
summary(model)
model
eqn <- as.character(as.expression(substitute(italic(y)==a+b*italic(x)*"," ~~ italic(r)^2~ "=" ~ r2,
                                             list(a = format(coef(model) [1], digits = 4), b = format(coef(model)[2], digits = 4), r2 = format(summary(model)$r.squared, digits = 2)
                                             ))))
eqn
parse(text = eqn)

#Plot-Erstellung
point <- ggplot(p, aes(x=Konz_x, y=CT_Wert_y)) 
p <- point + geom_point() + annotation_logticks(sides = "b")  + scale_x_log10() + stat_smooth(method=lm, se=0.99, colour="purple") +
  labs(title = 'Linearity Plot of FTD-Kit Data',
       subtitle = 'Linearity Plot to find Range of Linearity with Coefficient of Determination',
       x = 'Copies/ml patient sample',
       y = 'Ct-value',
       caption = 'Name / Name@Name.de') + 
  annotate("text", label = eqn, parse = TRUE, x=2600 , y=20.5) +
  theme_ipsum() +
  theme(plot.title = element_text(color = "#3a4fa7ff"), plot.caption = element_text(color = "#3a4fa7ff", face = 'bold'))
ggsave('cairo.pdf', p, device = cairo_pdf)

library(magick)
tiger <- image_read_svg('/Users/Andreas/Pictures/black-sailing-boat.svg')
plot <- image_read('cairo.pdf')
final_plot <- image_composite( plot, image_scale(tiger, "100"),  offset = "+400")
final_plot
image_write(final_plot, "test_final.pdf")
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Fehlerhafter pdf Export mit und ohne Cairo

Beitrag von EDi »

Ich habe dich um ein reproduzierbares Beispiel gebeten und sogar ein lauffähiges reproduzierbares Beispiel für meine Antwort erstellt.

Du sagts das irgendwas nicht funktioniert, lieferst aber kein reproduzierbares Beispiel mit.

=> Ich bin raus hier.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Werekorden
Beiträge: 83
Registriert: So Feb 04, 2018 7:52 pm

Re: Fehlerhafter pdf Export mit und ohne Cairo

Beitrag von Werekorden »

Hallo EDI,

Ich liefer doch reproduzierbare Ergebnisse aber ich sehe gerade wo einer meiner Fehler war.

Der erste Fehler:
Saving 10.9 x 7.33 in image
Fehler in UseMethod("grid.draw") : nicht anwendbare Methode für 'grid.draw' auf Objekt der Klasse "data.frame" angewendet
lag daran, dass ich statt image_read_svg nur image_read genommen hatte um eine svg-Datei als Logo einzufügen.


Unabhängig von dem Logo gibt es aber mit dem von mir gelieferten "lauffähigen Code" immer noch das Problem des Exports an meinem Mac. Egal ob mit ggsave oder mit der RStudio export-Funktion, die Schriften sind verfälscht/ersetzt worden oder verschwinden total.

Ich habe leider bei der Grafik cairo.pdf in meinem letzten Post vergessen zu erwähnen, dass ich es mal mit einem PC ausprobiert habe. Dort scheint der Export zu klappen.

Es bleibt aber dabei, dass mit dem folgenden lauffähigen Code auch ohne Logo kein korrekter Export stattfindet, sondern es weiterhin so aussieht wie auf diesem Bild:
ggsave.pdf
(26.99 KiB) 34-mal heruntergeladen
Ich denke es liegt an der Schriftensammlung, wie ja schon von einigen erwähnt aber die "library(extrafonts)" scheint nichts gebracht zu haben.

Code: Alles auswählen

library(ggplot2)
library(hrbrthemes)
library(scales)
library(Cairo)
library(extrafont)
extrafont::loadfonts()
#font_import()
#loadfonts()

#Dateneingabe
Konz_x <- c(47143480, 4714348, 4714, 2357, 1179, 471)
CT_Wert_y <- c(18.68, 22.595, 33.004, 34.290, 35.369, 35.271)
data.frame(Konz_x, CT_Wert_y)
p <- data.frame(Konz_x, CT_Wert_y)
p

#Model-Erstellung für Formeldarstellung in plot 
model <- lm(CT_Wert_y ~ log(Konz_x))
summary(model)
model

#Formel-Erstellung
eqn <- as.character(as.expression(substitute(italic(y)==a+b*italic(x)*"," ~~ italic(r)^2~ "=" ~ r2,
                                             list(a  = format(summary(model)$coefficients[1,1], digits = 4), 
                                                  b  = format(summary(model)$coefficients[2,1], digits = 4), 
                                                  r2 = format(summary(model)$r.squared, digits = 2)
                                             ))))
eqn
parse(text = eqn)

#Plot-Erstellung
point <- ggplot(p, aes(x=Konz_x, y=CT_Wert_y)) 
p<- point + geom_point() + annotation_logticks(sides = "b")  + scale_x_log10() + stat_smooth(method=lm, se=0.99, fullrange = TRUE, colour="purple") +
  labs(title = 'Linearity Plot of FTD- Bacterial CAP Kit Data',
       subtitle = 'Linearity Plot to find Range of Linearity with Coefficient of Determination',
       x = 'Copies/ml patient sample',
       y = 'Ct-value',
       caption = 'Dr. Andreas Breß / bress@andiatec.com') + 
  annotate("text", label = eqn, parse = TRUE, x=2600 , y=20.5) +
  theme_ipsum() + 
  theme(plot.title = element_text(color = "#3a4fa7ff"), plot.caption = element_text(color = "#3a4fa7ff", face = 'bold'))

#logo <-image_read_svg("https://upload.wikimedia.org/wikipedia/commons/f/fd/Ghostscript_Tiger.svg") 
#logo <-image_read_svg("/Users/andreas/Pictures/black-sailing-boat.svg") 
#grid::grid.raster(logo, x = 0.87, y = 0.88, just = c('left', 'bottom'), width = unit(0.8, 'inches'))

ggsave("ggsave.pdf", p, device = cairo_pdf)
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Fehlerhafter pdf Export mit und ohne Cairo

Beitrag von Athomas »

Eigentlich wollte ich mich nicht an dieser Diskussion beteiligen und habe deshalb die Vorgeschichte nur überflogen.
Mag sein, dass es sehr überflüssig ist, wenn ich feststelle, dass die Grafik bei mir (Windows 10) ganz vernünftig aussieht (vgl. Anhang)!
Dateianhänge
ggsave_orig.pdf
(46.71 KiB) 35-mal heruntergeladen
Antworten