Постоянная недопустимая ошибка состояния графики при использовании ggplot2

Я считаю, что мой dataframe в порядке, и мой код в порядке. Фактически, я устранил части данных и большую часть графического кода, чтобы сделать вещи максимально возможными. Но все же я получаю:

Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) : 
  invalid graphics state

Что здесь не так? Вот данные:

 date   trt var val
1/8/2008    cc  sw5 0.2684138
1/8/2008    cc  sw15    0.2897586
1/8/2008    cc  sw5 0.2822414
2/8/2008    cc  sw5 0.2494583
2/8/2008    cc  sw5 0.2692917
2/8/2008    cc  sw15    0.2619167
2/8/2008    cc  sw5 0.204375
3/8/2008    cc  sw5 0.2430625
3/8/2008    cc  sw5 0.2654375
3/8/2008    cc  sw5 0.2509583
3/8/2008    cc  sw5 0.2055625
1/8/2008    ccw sw15    0.2212414
1/8/2008    ccw sw5 0.3613448
1/8/2008    ccw sw5 0.2607586
2/8/2008    ccw sw5 0.2087917
2/8/2008    ccw sw15    0.3390417
2/8/2008    ccw sw5 0.2436458
2/8/2008    ccw sw5 0.290875
3/8/2008    ccw sw5 0.20175
3/8/2008    ccw sw15    0.328875
3/8/2008    ccw sw5 0.2328958
3/8/2008    ccw sw5 0.2868958

Когда я работаю с этими данными, я указываю такие даты:

df<-df[order(as.Date(df$date,format="%d/%m/%Y")),,drop=FALSE]

и здесь я хочу сделать диаграмму рассеяния:

ggplot(data = df,aes(x = date,y = val)) + 
 geom_point(aes(group = trt))

Ответ 1

Я столкнулся с этой же ошибкой и решил ее, запустив:

dev.off()

а затем снова запустить сюжет. Я думаю, что графическое устройство как-то испортилось из-за экспорта некоторой графики, но оно не было сброшено. Это сработало для меня, и это проще, чем переустановка ggplot2.

Ответ 2

Решение состоит в том, чтобы просто переустановить ggplot2. Возможно, существует несовместимость между используемой версией R и установленной версией ggplot2. В качестве альтернативы, во время установки ggplot2 что-то могло произойти неправильно, вызывая проблему.

Ответ 3

Вероятно, вам не нужно переустанавливать ggplot2

Решение: вернитесь к сюжету, который ранее не работал. Например, возьмите нижний консольный вывод. Границы рисунков (окно, отображающее ваши графики) были слишком маленькими, чтобы отображать пар (MinusInner). Затем, когда я попытался сделать следующий qplot, R по-прежнему зависал при предыдущей ошибке.

пары (MinusInner) Ошибка в plot.new(): слишком большие поля qplot (Sample.Type, BAE, data = MinusInner, geom = "boxplot" ) Ошибка в .Call.graphics(C_palette2,.Call(C_palette2, NULL)):   недопустимое графическое состояние

Я исправил первую ошибку, расширив окно сюжета и повторив график пары (MinusInner). Тогда, пожалуй, это сработало.

пары (MinusInner) qplot (Sample.Type, BAE, data = MinusInner, geom = "boxplot" )

Ответ 4

Я обнаружил, что это происходит, когда вы смешиваете диаграммы ggplot с диаграммами в одном сеансе. Использование решения dev.off, предложенного Полом, решает проблему.

Ответ 5

Я решил это, очистив все графики в консоли, а затем убедившись, что площадь графика была достаточно большой, чтобы вместить то, что я создавал.