Часто вам может понадобиться добавить таблицы к графикам, созданным в ggplot2 в R, чтобы читатели могли просматривать необработанные данные вместе с графиком.
К счастью, таблицы на графики легко добавить с помощью пакета ggpmisc:
install. packages('ggpmisc')
library (ggpmisc)
В следующих примерах показано, как использовать этот пакет для добавления таблицы в гистограмму и диаграмму рассеивания с использованием следующего фрейма данных:
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(13, 23, 24, 20, 19, 14, 29, 31))
#view data frame
df
team position points
1 A G 13
2 A G 23
3 A F 24
4 A F 20
5 B G 19
6 B G 14
7 B F 29
8 B F 31
Пример 1: добавить таблицу в гистограмму в ggplot2
Мы можем использовать следующий код, чтобы создать сгруппированную гистограмму в ggplot2 и добавить таблицу в правый нижний угол графика, чтобы показать фактические значения из фрейма данных:
library (ggplo2)
library (ggpmisc)
#create barplot with table
ggplot(df, aes(x=team, y=points, fill=position)) +
geom_bar(position='dodge', stat='identity') +
annotate(geom = 'table',
x=4,
y=0,
label=list(df))
Если вы работаете с большим набором данных и не хотите отображать каждую отдельную строку, вы можете использовать функцию table() для суммирования данных перед созданием таблицы в ggplot2:
library (ggplot2)
**library (ggpmisc)
#summarize frequencies of team and points in table
my_table <- as. data.frame (table(df[ , c(1, 3)]))
#create barplot with table
ggplot(df, aes(x=team, y=points, fill=position)) +
geom_bar(position='dodge', stat='identity') +
annotate(geom = 'table',
x=4,
y=0,
label=list(my_table))
Пример 2: добавить таблицу в диаграмму рассеяния в ggplot2
Мы можем использовать следующий код, чтобы создать диаграмму рассеяния в ggplot2 и добавить таблицу в нижний правый угол графика, чтобы показать фактические значения из фрейма данных:
library (ggplo2)
library (ggpmisc)
#create scatterplot with table
ggplot(df, aes(x=team, y=points)) +
geom_point(aes(color=position)) +
annotate(geom='table',
x=4,
y=0,
label=list(df))
Примечание.Не стесняйтесь экспериментировать со значениями x и y в функции annotate() , чтобы разместить таблицу именно в том месте, которое вам нужно.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:
Как добавить текст в графики ggplot2
Как изменить позицию заголовка в ggplot2
Как изменить порядок элементов в ggplot2 Legend