28

I am using a recent version of Rstudio with an iMac

Version 1.0.44 – © 2009-2016 RStudio, Inc. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko)

And I noticed the notebook function for rmarkdown files. When generating plots, the usual "Plots window" is not used any more, and the plots are generated just below the code chunk.

And I have an error for the following code:

plot(seq(1,10,1))
abline(a=0,b=1)

The error is showed below the code chunk :

Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : plot.new has not been called yet

However, when knitting the whole rmarkdown file, there is no error.

So I would like to know how to avoid the error:

  • by using another code
  • by using the "Plots window"
  • or another way.
John Smith
  • 1,604
  • 4
  • 18
  • 45

5 Answers5

37

The following will work

{plot(seq(1,10,1))
 abline(a=0,b=1)}
ρяσѕρєя K
  • 132,198
  • 53
  • 198
  • 213
user7492565
  • 394
  • 4
  • 3
  • 6
    Add some explanation with answer for how this answer help OP in fixing current issue – ρяσѕρєя K Jan 31 '17 at 00:43
  • I don't really get why it works either, but can verify that it does. Must have something to do with the Rstudio markdown environment. – wildintellect Jun 21 '17 at 18:11
  • 4
    Wrapping it in curly brackets ensures all lines are evaluated as one block. This answer, to an unrelated question, explains it nicely. https://stackoverflow.com/a/28758675/1454785 – spops Dec 03 '21 at 20:50
8

In RStudio, there's a setting in Preferences -> R Markdown to "Show output inline for all R Markdown documents". To get rid of the error, make sure this is unchecked.

Mike W
  • 97
  • 1
  • 1
5

This works too

plot(seq(1,10,1))+
abline(a=0,b=1)
mindlessgreen
  • 11,059
  • 16
  • 68
  • 113
2

In jupyter with R kernel, you will see that error if run the code line by line, just as XR SC mentioned.

Augusto Diaz
  • 107
  • 1
  • 4
1

This was happening to me because I was adding an invalid parameter to my plot. In my case I was trying to execute:

ggplot(df, aes(x=sales)) + geom_histogram() + title('Plot Title')

And should have been executing:

ggplot(df, aes(x=sales)) + geom_histogram() + ggtitle('Plot Title')

Notice that you must use ggtitle, not title.

Colonel_Old
  • 852
  • 9
  • 15