Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error in dev.off() : cannot shut down device 1 (the null device)

Tags:

r

I am new to R programming and I got hit with this error when I tried to run the code. This simply creates a pie chart with some data. Can anyone explain to me why I am getting this error and what it means?

1) I am running windows 2) Version 3.4.0 3) I am using RGui desktop 4) R version 3.4.0

# Create data for the graph.
x <- c(21, 62, 10, 53)
labels <- c("London", "New York", "Singapore", "Mumbai")

# Give the chart file a name.
png(file = "city_title_colours.jpg")

# Plot the chart with title and rainbow color pallet.
pie(x, labels, main = "City pie chart", col = rainbow(length(x)))

# Save the file.
dev.off()
like image 446
Andrew Avatar asked Jun 02 '17 19:06

Andrew


4 Answers

try

while (!is.null(dev.list()))  dev.off()
like image 109
Farid Khafizov Avatar answered Oct 06 '22 08:10

Farid Khafizov


In my case the reason for the error was also quite silly. In case anyone runs into the same issue...

dev.off

will result in:

function (which = dev.cur()) 
{
    if (which == 1) 
        stop("cannot shut down device 1 (the null device)")
    .External(C_devoff, as.integer(which))
    dev.cur()
}
<bytecode: 0x0000000028e62bd8>
<environment: namespace:grDevices>

Do not forget the function brackets:

dev.off()
like image 34
ThomDietrich Avatar answered Sep 20 '22 19:09

ThomDietrich


I had this situation and resolved it by running the following 2 or 3 times:

dev.set(dev.next())

The console should eventually spit out:

quartz_off_screen 
                3

Once you see this, the plots will render.

P.S. you can probably use dev.set(dev.prev()) in the same way.

like image 7
awags1 Avatar answered Oct 06 '22 08:10

awags1


Turns out that the only problem with this was with where the file was trying to save to. I altered the code to save to a different directory and it worked fine

like image 4
Andrew Avatar answered Oct 06 '22 07:10

Andrew