4
請幫助我找到一種通用的方法來將文本放置在距離繪圖區右側不變的距離處,如下圖所示。由於右側的繪圖區域較窄,不幸的是,當前的放置計算將文本置於左側太遠。請注意,文本是右對齊的。我最後的想法是:如果我們知道x = 1和x = 2之間的距離,我們可以很容易地計算出位置。不幸的是,它顯然是not that easy得到這個距離。將文本放在離圖表固定的距離
僅供參考:我不打算標註這些行。
library(ggplot2)
library(reshape)
library(gridExtra)
df = data.frame(x =(1:3),One=c(12, 8, 13),Two=c(13, 7, 11),Three=c(11, 9, 11))
df.melt = melt(df, id.vars="x")
xmax = max(df.melt$x); xmin = min(df.melt$x)
ymax = max(df.melt$value); ymin = min(df.melt$value)
dfa = data.frame(x=(xmax-xmin)*1.15+xmin, y=c(11,12,13.5), ann=c("10.1|","1.1|","Texttexttext|"))
dfa.melt = melt(dfa, id.vars=c("x","ann"))
p = ggplot() +
geom_line(data=df.melt, aes(x=x, y=value, color=variable), show_guide=F) +
geom_text(data=dfa.melt, aes(x=x, y=value, hjust = 1, label=ann), size=3) +
coord_cartesian(xlim=c(xmin,xmax), ylim=c(ymin,ymax))
p1 = p + theme(plot.margin=unit(c(1,3,0,0),"cm"), axis.text.y=element_text(size=10))
p2 = p + theme(plot.margin=unit(c(1,3,0,3),"cm"), axis.text.y=element_text(size=35))
p1c <- ggplot_gtable(ggplot_build(p1))
p1c$layout$clip[p1c$layout$name=="panel"] <- "off"
p2c <- ggplot_gtable(ggplot_build(p2))
p2c$layout$clip[p2c$layout$name=="panel"] <- "off"
grid.arrange(p1c, p2c, ncol=2)
感謝。我想你的答案是從網格的最右側邊界到劇情的右側。見[這裏](http://i.stack.imgur.com/Uknt7.png)。另外,將文本定位在特定的y值處有點困難。在我的例子中,文本被精確地放置在'y = 11'和'y = 12'處。 –
@Frank是從正確的是。這是參考的問題。你需要在y = 11,12處放置文本嗎? – agstudy
是的,如果y位置與圖表座標相關將會很好。無論如何,解決我的另一個問題[(LINK)](http://stackoverflow.com/questions/13867325/get-width-of-plot-area-in-ggplot2),它應該是可能的。明年將完成我的申請。感謝您對這兩個問題的幫助! –