yihui / knitr

A general-purpose tool for dynamic report generation in R
https://yihui.org/knitr/
2.37k stars 872 forks source link

Graphs not rendering in PDF when using dev.new() with knitr #2355

Open Higgs32584 opened 1 month ago

Higgs32584 commented 1 month ago

Screenshot 2024-07-09 120145 Screenshot 2024-07-09 120128 Screenshot 2024-07-09 120101

Hi, so recently, I was using knitr to compile graphs for my homework and, I was adding dev.new() before all of my graphs, as I thought this was the normal format to create graphs in. What did end up happening though, is that graphs that followed dev.new() did not render at all in the pdf. while I understand dev.new is a function in the graphics package, I ran into no issues when compiling the graphs in markdown, as they all displayed perfectly fine, the code interaction seems to be related specifically towards how knitr compiles .rmd into a .pdf.

A warning label related to instances of dev.new() in the compilation would be ideal, as I imagine taking into account new graph windows might be too complex.

library("robustbase")
data("coleman",package="robustbase")
dev.new()
barplot(salaryP ~ fatherWc,data=coleman)
dev.new()
plot(salaryP ~ fatherWc,data=coleman)
cderv commented 1 month ago

Hi.

Can you share you session information please ?

I wonder if this is linked to an update in the evaluate package for 0.24

cderv commented 1 month ago

@yihui I am not sure if we made changes recently that would have caused this... I tried different version with no success.

You know better than me how dev.new() works in chunks. My understanding is that it is not needed, but shouldn't behave like it is here.

Higgs32584 commented 1 month ago

Screenshot 2024-07-11 103307 If you have any more questions let me know.

Since this deals with the interactions of multiple packages, it may not necessarily be this package, but my educated guess was this package, given the fact the graph renders fine until the pdf generation.

If there is another package you may believe it is, I will open an issue there as well.