Seite 2 von 2

Re: Fehlerhafter pdf Export mit und ohne Cairo

Verfasst: Di Apr 16, 2019 12:29 am
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) 42-mal heruntergeladen
Sobald aber die SVG-Datei als Logo mit deinem Code angehängt wird...
test_final.pdf
(72.33 KiB) 23-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")

Re: Fehlerhafter pdf Export mit und ohne Cairo

Verfasst: Di Apr 16, 2019 8:15 am
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.

Re: Fehlerhafter pdf Export mit und ohne Cairo

Verfasst: Di Apr 16, 2019 2:11 pm
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) 35-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)

Re: Fehlerhafter pdf Export mit und ohne Cairo

Verfasst: Mi Apr 17, 2019 9:44 am
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)!