Как добавить таблицы на графики в ggplot2 (2 примера)
Часто вам может потребоваться добавить таблицы к графикам, созданным в 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 AG 13
2 AG 23
3 AF 24
4 AF 20
5 BG 19
6 BG 14
7 BF 29
8 BF 31
Пример 1. Добавьте таблицу в Barplot в 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