我正在製作一個使用ggplot2
和animation
包的動畫圖。動畫的每個框架都包含一個帶有兩位信息的地圖,我想用它作爲標題/標籤。在面板外添加ggplot註釋?還是兩個頭銜?
在我看來,有兩種方法可以做到這一點。
- 調整繪圖邊距,使其沒有標題邊距,然後使用
geom_text
將「標題」添加爲繪圖上的文本註釋。 - 添加第二個標題。 (我嘗試用空格填充單個標題以模擬兩個標題,但由於字距縮小導致重複繪製,因此分解)
第一種方法並不理想,因爲我需要使用相同的繪圖限制每個框架,我從經緯度測量的地圖範圍中獲得這些數據。確定標籤所需的額外高度會導致單位的醜陋混雜。因此,添加第二個標題在語義上似乎對我更明智,但在玩了annotation_custom
後,我似乎無法弄清楚。
這是我之後的模型,展示了兩個「標題」,每個都有獨立的路線,以確保它們在重複的框架中保持原位。我打開了情節邊界來幫助觀察位置。在最後的情節中,這將被刪除。
感謝您的幫助!
編輯
感謝巴蒂斯特爲標誌張貼。我必須使用稍微不同的參數來(a)獲得定位權並(b)爲兩個標題使用相同的字體。這裏有一個例子:
require(gtable)
require(ggplot2)
## Create the basic plot
df <- data.frame(x=1:10, y=1:10)
gg <- ggplot(df, aes(x,y)) + geom_point() + labs(title="Left") +
theme(plot.title=element_text(hjust=0))
## Get the title style from the original plot
g <- ggplotGrob(gg)
title_style <- g$grobs[[8]]$gp
## Add the second title and plot
g2 <- gtable_add_grob(g, textGrob("Right", x=1, hjust=1, gp=title_style),
t=2, l=4, b=2, r=4, name="right-title")
grid.draw(g2)
這裏的結果:
我試圖與title_style玩,但我需要我的格羅是從標題的其餘部分不同的顏色,所以我不能從標題,也沒有從任何搶風格其他文字在我的圖表上。是否有另一種方法來改變grob的顏色? – zazu