Используйте cowplot в R для выравнивания графиков image()

Я хотел бы выровнять два графика в R, созданные с помощью функции image().

Образец кода:

# Load package
library(cowplot)

# Plot sample image
image <- image(matrix(rnorm(1000), 100,100))

# Align plots
plot_grid(image, image)

Однако, когда я делаю это так, графики не появляются. Я что-то упускаю? Или cowplot не может обрабатывать графики, созданные функцией изображения?


person user213544    schedule 24.10.2018    source источник


Ответы (2)


Вам нужно проделать небольшую работу, чтобы сохранить их в своей среде. Если вы отметите image, вы увидите, что это NULL. Так что вам придется записать это, а затем начертить.

p <- recordPlot()
plot.new()
image(matrix(rnorm(1000), 100,100))
p

plot_grid(p, p, nrow = 2)

введите здесь описание изображения

person Anonymous coward    schedule 24.10.2018

Если вы хотите использовать cowplot для графиков base-R, я настоятельно рекомендую использовать текущую разрабатываемую версию cowplot. В этой версии вы можете просто превратить код изображения в формулу (добавив ~ впереди), и это сработает.

library(cowplot)
#> 
#> 
#> *******************************************************
#> Note: cowplot does not change the default ggplot2 theme
#> anymore. To recover the previous behavior, execute:
#>   theme_set(theme_cowplot())
#> *******************************************************

# Plot sample image
image <- ~image(matrix(rnorm(1000), 100,100))

# Align plots
plot_grid(image, image)

Создана 27 октября 2018 г. с помощью пакета reprex (v0.2.1)

person Claus Wilke    schedule 27.10.2018