Rmarkdown knit выдает pdf с неправильным сюжетом. только ggplot2 отображает правильный

#r #ggplot2 #r-markdown #tukey

#r #ggplot2 #r-markdown #туки

Вопрос:

Код, который я прилагаю здесь, отображает неправильный сюжет при вязании («Tk.wrong.png», первый сюжет здесь). Однако, если я запускаю его как стандартный R-код, отображаемый график является правильным («Tk.right.png», второй график). Я нахожу это загадочным. Какие-либо подсказки? Большое спасибо. Лучше всего, Дэвид Р. PS: Tk data.frame можно загрузить здесь. https://mycore.core-cloud.net/index.php/s/OKF9dp1tWa0OR1g

Tk.wrong.pngTk.right.png

Это фрейм данных Tk введите описание изображения здесь

 ---
  

название: «Справка по Tukey plot»
автор: «DR»
дата: «16/10/2020»
вывод: pdf_document

 knitr::opts_chunk$set(echo = TRUE)
  
 setwd("~/Documents/IPBS/JN/AB")
library(tidyverse)
input.data <- read.table("input.data.txt", header = TRUE, sep = "t")
  
 Tk <- rownames_to_column(as.data.frame(TukeyHSD(aov(Score_Avg ~ Manip * Traitement, data = input.data), "Traitement")$Traitement),var = "comp") 
Tk$signif <- sapply(1:nrow(Tk), function (x) between(0,Tk$lwr[x],Tk$upr[x]))
Tk$comp <- as.factor(Tk$comp)
levels(Tk$comp) <- c("Genta-NT", "3T-NT", "G3T-NT", "3T-Genta", "G3T-Genta", "G3T-3T")
  
 ggplot(Tk, aes(x = diff, y = comp, colour = signif))  
  geom_point()  
  geom_errorbar(aes(xmin = lwr, xmax = upr), width = .1)  
  geom_vline(xintercept = 0, colour = "darkgreen")  
  scale_colour_manual(values=c('darkred','darkblue'))  
  theme_minimal()  
  theme(axis.title.x = element_text(size = 20),
        axis.text.x = element_text(size = 15),
        legend.position = "none")
ggsave("Tk.wrong.png")
  

Комментарии:

1. Не могли бы вы, пожалуйста, сделать свой пример воспроизводимым, добавив фрагмент ваших данных? Кроме того. В общем, я бы доверял сюжету Rmd. Почему? Потому что Rmd основан на понятии воспроизводимости. Поэтому Rmd отображает ваш код в новом и чистом сеансе R. Если выполнение точно такого же кода в стандартном R-скрипте дает разные результаты, я бы посоветовал перезапустить сеанс R и повторить попытку.

2. Привет, Стефан, я попробовал то, что предложил oyu, включая перезапуск RStudio и т. Д. То же самое. График, который я получаю с помощью ggplot2, определенно правильный. Тот, у которого Rmarkdown, скручен, кажется, что он не принимает уровни оси y, как следует. Вот данные. Надеюсь, это разборчиво.

3. Tk data.frame можно загрузить здесь. Еще раз спасибо. mycore.core-cloud.net/index.php/s/OKF9dp1tWa0OR1g

4. Привет, Дэвид. Я запустил ваш код (и я имею в виду точно такой же код) как в Rmd, так и в стандартном R-скрипте. И, как и ожидалось. Я получил те же сюжеты. Однако графики, которые я получил, отличались от ваших. Итак, я посмотрел еще раз. И да. Одна из проблем с вашим кодом заключается в том, что, когда levels(Tk$comp) <- c(....) вы не устанавливаете уровни, вы перезаписываете уровни, то есть метки меняются. Если я вместо этого использую Tk$comp <- factor(Tk$comp, levels = c("Genta-NT", "3T-NT", "G3T-NT", "3T-Genta", "G3T-Genta", "G3T-3T")) , я закончил с вашим правильным сюжетом. Как в Rmd, так и в стандартном R-скрипте.

5. Большое спасибо, Стефан, я попробую это, как только смогу. С наилучшими пожеланиями, Дэвид