Seite 1 von 2
Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 04, 2019 9:32 pm
von Werekorden
Hallo,
Ich poste hier mal ein Problem, dass teilweise schon unter
viewtopic.php?f=18&t=1038 besprochen wurde.
Ich habe mittlerweile mein RStudio und R selbst neuinstalliert da sich kein Paket updaten lies. Jetzt nutze ich RStudio 1.1.463 und R 3.5.3. mit den jeweils neuesten VErsionen der Pakete.
Ich benötige folgende Pakete um meine logariythmische Regressions-Plot durchzuführen.
library(Rcpp)
library(rlang)
library(gcookbook)
library(ggplot2)
library(hrbrthemes)
library(magick)
library(plyr)
library(dplyr)
library(MASS)
library(scales)
library(Cairo)
Sobald ich versuche mit RStudio den Plot als
PDF zu exportieren klappt es nicht richtig. MIt
Cairo Unterstützung habe ich zwar alle Texte, aber in falschen Schriftarten und die Formel ist komplett zerhackt und nicht lesbar. Ohne
Cairo bekomme ich gar keinen Text aber dafür ist die Formel in perfekter Form.
Wenn ich es als
EPS-Datei exportiere sind die Überschriften da in Helvetica. Allerdings fehlt plötzlich der Name und die E-Mail in der Grafik.
SVG klappt auch nicht da kommen dann folgende Fehlermeldungen:
Fontconfig warning: line 5: unknown element "its:rules"
Fontconfig warning: line 6: unknown element "its:translateRule"
Fontconfig error: line 6: invalid attribute 'translate'
Fontconfig error: line 6: invalid attribute 'selector'
Fontconfig error: line 7: invalid attribute 'xmlns:its'
Fontconfig error: line 7: invalid attribute 'version'
Fontconfig warning: line 9: unknown element "description"
Fontconfig warning: "/Users/andreas/Library/R/3.5/library/magick/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "its:rules"
PNG Datei geht aber in mieser Quali.
Mit
ggsave() klappt es auch nicht. Folgender Fehler tritt auf:
Fehler in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, : unzulässiger Zeichensatztyp
Zusätzlich: Es gab 50 oder mehr Warnungen (Anzeige der ersten 50 mit warnings())
>
Hat jemand eine Idee
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Fr Apr 05, 2019 2:25 pm
von EDi
Hat jemand eine Idee
Zeig uns doch mal ein reproduzierbares Beispiel um unsere Kreativität zu erhöhen...
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Fr Apr 05, 2019 5:53 pm
von Werekorden
Hier der Code:
Code: Alles auswählen
library(Rcpp)
library(rlang)
library(gcookbook)
library(ggplot2)
library(hrbrthemes)
library(magick)
library(plyr)
library(dplyr)
library(MASS)
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))
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'))
logo <-image_read("/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'))
So sieht der PLot in RStudio aus. Bildschirmfoto:
Dann kommt das PDF mit Cairo:
Nun folgt das PDF ohne Cairo:
Hier der PNG Export mit RStudio:
So ich hoffe das langt. Der Plot wurde mit dem Code, wie von mir gepostet erstellt, ich habe nur die Beschreibungen ein wenig geändert.
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 2:15 pm
von Werekorden
Hi,
Konnte ich bei irgendjemand die Kreativität steigern? Habt ihr vielleicht irgendeine Idee?
VG
Andreas
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 6:42 pm
von EDi
klappt bei mir problemlos.
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 6:52 pm
von Werekorden
Hi,
Bei mir kommt folgende Fehlermeldung wenn ich ggsave nutze:
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
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 6:57 pm
von EDi
Werekorden hat geschrieben: ↑Do Apr 11, 2019 6:52 pm
Hi,
Bei mir kommt folgende Fehlermeldung wenn ich ggsave nutze:
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
Bitte reproduzierbaren liefern,sonst glaube ich nicht dass du ggsave ordentlich verwendet hast (u.nd meine Muse hier einen Beitrag zu schreiben sink sehr stark).
Bei mir funktioniert das hier:
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('test.pdf', p, device = cairo_pdf)
Und ich vermute du willst einen data.frame mit ggsave speichern (was keinen Sinne ergibt, weil ggsave nur Objekt der Klasse ggplot verarbeiten kann).
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 8:24 pm
von Werekorden
Dein Code funktioniert natürlich, denn es fehlt ja der Teil meines Codes, der die Fehlermledung verursacht.
Code: Alles auswählen
logo <-image_read("/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'))
Siehe meinen Code oben. Die grid.raster Funktion scheint ein Problem zu machen. Ohne Logo geht es bei mir auch.
So sagt der Fehler auch:
Fehler in UseMethod("grid.draw") : nicht anwendbare Methode für 'grid.draw' auf Objekt der Klasse "data.frame" angewendet
Hier mein Rstudio Fenster:
und meine Session INfo:
Code: Alles auswählen
R version 3.5.3 (2019-03-11)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.4
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] extrafont_0.17 Cairo_1.5-10 scales_1.0.0 MASS_7.3-51.4 dplyr_0.8.0.1 plyr_1.8.4 magick_2.0 hrbrthemes_0.6.0 ggplot2_3.1.1
[10] gcookbook_2.0 rlang_0.3.4 Rcpp_1.0.1
loaded via a namespace (and not attached):
[1] pillar_1.3.1 compiler_3.5.3 tools_3.5.3 digest_0.6.18 evaluate_0.13 tibble_2.1.1 gtable_0.3.0 pkgconfig_2.0.2 rstudioapi_0.10
[10] yaml_2.2.0 xfun_0.6 Rttf2pt1_1.3.7 withr_2.1.2 knitr_1.22 gdtools_0.1.8 grid_3.5.3 tidyselect_0.2.5 glue_1.3.1
[19] R6_2.4.0 rmarkdown_1.12 purrr_0.3.2 extrafontdb_1.0 magrittr_1.5 htmltools_0.3.6 assertthat_0.2.1 colorspace_1.4-1 labeling_0.3
[28] lazyeval_0.2.2 munsell_0.5.0 crayon_1.3.4
Es wäre sehr hilfreich, wenn ihr bestimmte Infos braucht dies genauer zu erwähnen, ich dachte Bilder, Code und Fehlermeldungen langen. Gerne lese ich mir auch eine FAQ diesbezüglich durch.
Trotzdem schonmal danke für die Hilfe.
VG
Andreas
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 10:12 pm
von EDi
Code: Alles auswählen
logo <-image_read("/Users/Andreas/Pictures/black-sailing-boat.svg")
Dieser Pfad existiert bei mir nicht.
Re: Fehlerhafter pdf Export mit und ohne Cairo
Verfasst: Do Apr 11, 2019 10:21 pm
von EDi
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('test.pdf', p, device = cairo_pdf)
library(magick)
tiger <- image_read_svg('https://upload.wikimedia.org/wikipedia/commons/f/fd/Ghostscript_Tiger.svg')
plot <- image_read('test.pdf')
final_plot <- image_composite( plot, image_scale(tiger, "100"), offset = "+400")
final_plot
image_write(final_plot, "test_final.pdf")