Как я могу добавить таблицу на график? - PullRequest
3 голосов
/ 14 сентября 2011

Я создал точечную гистограмму, используя следующие команды:

a = c(1,1,1,1,1,1,1,2,2,2,2,2,2,2) 
b = c("A","A","A","B","B","B","B","C","C","D","D","D","D","D") 
c = c(60,20,20,80,5,5,5,50,50,25,25,25,20,5) 
dat = data.frame(Group=a, Member=b, Percentage=c) 
ggplot(dat, aes(x=Member, y=Percentage)) + geom_bar(stat="identity", position="dodge", fill="white", colour="black") 

Если у меня есть набор значений:

table_values = c("2", "4", "2", "1")
table_total = c("A", "B", "C", "D")
tab = data.frame(Type=table_total, Value=table_values)

Как я могу добавить это как таблицу к моему графику, чтобы он выровнялся? Примерно так:

enter image description here

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

1 Ответ

8 голосов
/ 14 сентября 2011

Это что-то вроде хака, но вы можете аннотировать с помощью geom_text, поместив текст как слегка отрицательное значение y.Это помещает его в область графика, а не под осью.

ggplot(dat, aes(x=Member, y=Percentage)) + 
  geom_bar(stat="identity", position="dodge", fill="white", colour="black") +
  geom_text(aes(x=table_total, label=table_values), y=-2, data=tab)

Using geom_text to make something like a table in a graph

Более сложным подходом было бы создание двух отдельных графиков, один из которых является гистограммой,тот, который является «таблицей» (отключает почти все элементы темы) и использует что-то вроде align.plots (не уверен, что это правильное имя) в пакете ggExtra.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...