Создать матрицу точечной диаграммы с openair и hexbin
Я работал с openair
а также hexbin
пакеты для создания двух точечных диаграмм с помощью команд функции точечной диаграммы:
scatterPlot(mydata, x ="Observed" , y = "Model1",xlab=10, ylab=10,method = "hexbin",mod.line=T,auto.text=F, col = "jet", xbin = 30)
scatterPlot(mydata, x ="Observed" , y = "Model2",xlab=10, ylab=10,method = "hexbin",mod.line=T,auto.text=F, col = "jet", xbin = 30)
У меня есть графики разброса, но если я хочу поместить их в один график и рассчитывать одним цветом, чтобы получить что-то похожее на это: Как мне поступить?
пожалуйста, перейдите по этой ссылке для просмотра изображения: https://ibb.co/rF148kp
1 ответ
Вы можете реорганизовать свой фрейм данных так, чтобы он имел три столбца - "Наблюдаемый", "Моделируемый" и "Тип модели". Пример -
structure(list(observed = c(2L, 2L, 4L, 4L, 6L, 6L, 8L, 8L, 10L,
10L, 12L, 12L, 14L, 14L, 16L, 16L, 18L, 18L, 20L, 20L), modelled = c(1L,
5L, 7L, 2L, 5L, 9L, 13L, 15L, 16L, 14L, 18L, 17L, 10L, 21L, 26L,
24L, 22L, 28L, 27L, 30L), model_type = structure(c(1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L), .Label = c("Model 1", "Model 2"), class = "factor")), class = "data.frame",
row.names = c(NA,
-20L))
Таким образом, вы можете использовать следующий код -
scatterPlot(mydata, x = "observed", y = "modelled", type = c("model_type"),
method = "hexbin",mod.line=T,auto.text=F, col = "jet", xbin = 5,
linear = TRUE, layout = c(2, 1))
Создать участок, содержащий два графика рассеяния. Обратите внимание, что приведенный выше код устанавливает xbin равным 5 исключительно по той причине, что я использовал небольшой набор данных для целей тестирования. Кроме того, извините орфографическую ошибку в оси Y и коде ("смоделировано" должно быть "смоделировано")!