Notice: file_put_contents(): Write of 3229 bytes failed with errno=28 No space left on device in /var/www/group-telegram/post.php on line 50

Warning: file_put_contents(): Only 8192 of 11421 bytes written, possibly out of free disk space in /var/www/group-telegram/post.php on line 50
R4marketing | канал Алексея Селезнёва | Язык R | Telegram Webview: R4marketing/994 -
Telegram Group & Telegram Channel
​​Как расположить несколько ggplot2 графиков на одном изображении

Для расположения сразу нескольких графиков на одном изображении удобно использовать пакет patchwork. patchwork по сути решает туже проблему, что и gridExtra::grid.arrange() и cowplot::plot_grid(), но имеет более простой синтаксис.

Рассмотрим несколько примеров:
  
library(ggplot2)
library(patchwork)

# создаём 2 графика
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))

# располагаем их на одном изображении
p1 + p2

Пример более сложного макета, в котором 3 графика будут располагаться в верхней части изображения, и один в нижней.
 
p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))

(p1 | p2 | p3) /
p4

Так же управлять макетом изображения вам позволяет функция plot_layout():
 
p1 + p2 + p3 + p4 +
plot_layout(ncol = 3)

Аргументы функции plot_layout():
ncol, nrow - Размеры создаваемой сетки, если оба равны NULL, для установки размеров будет использоваться та же логика, что и при использовании facet_wrap().
● byrow - Аналогично byrow в matrix(). При значении FALSE, графики будут заполнены по столбцам.
● widths, heights - Относительная ширина и высота каждого столбца и строки в сетке. Будет повторяться, чтобы соответствовать размерам сетки.
● guides - Позволяет расположение общей легенды объединяемых графиов, принимает одно из следующих значений: 'collect', 'keep', 'auto'
● tag_level - Автопометка графиков, принимает одно из следующих значений: 'keep', 'new'
● design - Спецификация расположения областей графиков на макете.

Пример работы с аргументом design
 
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p3 <- ggplot(mtcars) + geom_bar(aes(gear)) + facet_wrap(~cyl)
p4 <- ggplot(mtcars) + geom_bar(aes(carb))
p5 <- ggplot(mtcars) + geom_violin(aes(cyl, mpg, group = cyl))

# пример 1
design <- c(
area(1, 1, 2),
area(1, 2, 1, 3),
area(2, 3, 3),
area(3, 1, 3, 2),
area(2, 2)
)

p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

# пример 2
design <- "
122
153
443
"
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

Результат работы этого примера вы видите на изображении к посту.

Ссылки:
- сайт пакета patchwork

#заметки_по_R



group-telegram.com/R4marketing/994
Create:
Last Update:

​​Как расположить несколько ggplot2 графиков на одном изображении

Для расположения сразу нескольких графиков на одном изображении удобно использовать пакет patchwork. patchwork по сути решает туже проблему, что и gridExtra::grid.arrange() и cowplot::plot_grid(), но имеет более простой синтаксис.

Рассмотрим несколько примеров:

  
library(ggplot2)
library(patchwork)

# создаём 2 графика
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))

# располагаем их на одном изображении
p1 + p2

Пример более сложного макета, в котором 3 графика будут располагаться в верхней части изображения, и один в нижней.
 
p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))

(p1 | p2 | p3) /
p4

Так же управлять макетом изображения вам позволяет функция plot_layout():
 
p1 + p2 + p3 + p4 +
plot_layout(ncol = 3)

Аргументы функции plot_layout():
ncol, nrow - Размеры создаваемой сетки, если оба равны NULL, для установки размеров будет использоваться та же логика, что и при использовании facet_wrap().
● byrow - Аналогично byrow в matrix(). При значении FALSE, графики будут заполнены по столбцам.
● widths, heights - Относительная ширина и высота каждого столбца и строки в сетке. Будет повторяться, чтобы соответствовать размерам сетки.
● guides - Позволяет расположение общей легенды объединяемых графиов, принимает одно из следующих значений: 'collect', 'keep', 'auto'
● tag_level - Автопометка графиков, принимает одно из следующих значений: 'keep', 'new'
● design - Спецификация расположения областей графиков на макете.

Пример работы с аргументом design
 
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p3 <- ggplot(mtcars) + geom_bar(aes(gear)) + facet_wrap(~cyl)
p4 <- ggplot(mtcars) + geom_bar(aes(carb))
p5 <- ggplot(mtcars) + geom_violin(aes(cyl, mpg, group = cyl))

# пример 1
design <- c(
area(1, 1, 2),
area(1, 2, 1, 3),
area(2, 3, 3),
area(3, 1, 3, 2),
area(2, 2)
)

p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

# пример 2
design <- "
122
153
443
"
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

Результат работы этого примера вы видите на изображении к посту.

Ссылки:
- сайт пакета patchwork

#заметки_по_R

BY R4marketing | канал Алексея Селезнёва | Язык R




Share with your friend now:
group-telegram.com/R4marketing/994

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Investors took profits on Friday while they could ahead of the weekend, explained Tom Essaye, founder of Sevens Report Research. Saturday and Sunday could easily bring unfortunate news on the war front—and traders would rather be able to sell any recent winnings at Friday’s earlier prices than wait for a potentially lower price at Monday’s open. "Russians are really disconnected from the reality of what happening to their country," Andrey said. "So Telegram has become essential for understanding what's going on to the Russian-speaking world." And indeed, volatility has been a hallmark of the market environment so far in 2022, with the S&P 500 still down more than 10% for the year-to-date after first sliding into a correction last month. The CBOE Volatility Index, or VIX, has held at a lofty level of more than 30. "We're seeing really dramatic moves, and it's all really tied to Ukraine right now, and in a secondary way, in terms of interest rates," Octavio Marenzi, CEO of Opimas, told Yahoo Finance Live on Thursday. "This war in Ukraine is going to give the Fed the ammunition, the cover that it needs, to not raise interest rates too quickly. And I think Jay Powell is a very tepid sort of inflation fighter and he's not going to do as much as he needs to do to get that under control. And this seems like an excuse to kick the can further down the road still and not do too much too soon." The gold standard of encryption, known as end-to-end encryption, where only the sender and person who receives the message are able to see it, is available on Telegram only when the Secret Chat function is enabled. Voice and video calls are also completely encrypted.
from ms


Telegram R4marketing | канал Алексея Селезнёва | Язык R
FROM American