Постоянная недопустимая ошибка состояния графики при использовании 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
Я решил это, очистив все графики в консоли, а затем убедившись, что площадь графика была достаточно большой, чтобы вместить то, что я создавал.