3

まず、以下に示すように、gtable/textGrob を使用して結合されたプロットの左下にキャプションを追加することで、R スクリプトの改善を支援してくれた Baptiste 卿に感謝します。

library(grid)
library(gridExtra)
library(ggplot2)

p1 <- p2 <- ggplot()

g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)

g <- rbind(g1, g2)
caption <- textGrob("Figure 1. This is a caption", hjust=0, x=0)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(g)

ただし、さらに2つのことを追加したいと思います。

(1) キャプションに学名を挿入し、斜体で記載してください。- たとえば、上記のキャプションに基づいて、「is」という単語だけを斜体にし、残りは平文にします。

(2) キャプションにも記号を追加します。例: point shape=c(1,22); colors=c("黒", "赤"); fill=c("赤", "黒").

これらをどのように行うのですか?私は R プログラムの初心者ユーザーです。ありがとうございました。

アップデート:

このスクリプトを使用して、@Docconcoct、@user20650、および @baptiste の助けを借りて、クエリ 1 に既に対処しました。

library(grid)
library(gridExtra)
library(ggplot2)

g1 <- ggplotGrob(pl)
g2 <- ggplotGrob(pl1)

g <- rbind(g1, g2)
caption <- textGrob(expression(paste("Figure 1. This",  italic(" is"), " a caption")), hjust=0, x=0)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(g)

クエリ 2 については、@baptiste 卿が述べたように、彼への最初の電子メールで、結合されたプロットに関する凡例が既にあります。ただし、図のキャプションでは、凡例の記号の意味と、プロットのその他の詳細を述べる必要があります。Sir baptiste の例に基づいて、supp の意味と、キャプションに OJ (黒丸) と VC (黒三角) の記号を含める必要があります。

繰り返しますが、どうもありがとうございました!

4

2 に答える 2

2

コメントに基づいて、次の戦略をお勧めします。図のキャプション (テキスト) を凡例のタイトルとしてダミー プロットを作成し、その凡例を抽出して、gtable の下部に配置します。

library(grid)
library(gridExtra)
library(ggplot2)
library(gtable)

p1 <- ggplot()
p2 <- ggplot(ToothGrowth, aes(len, dose, shape=supp)) + geom_point() +
  theme(legend.position="bottom", 
        legend.background=element_rect(colour="black")) 

title <- expression("Figure 1. This "*italic(is)*" now a legendary caption")
dummy <- ggplotGrob(p2 + guides(shape = guide_legend(title = title)))

g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)
caption <- gtable_filter(dummy,"guide")[["grobs"]][[1]]
caption$widths <- grid:::unit.list(caption$widths)
caption$widths <- unit.c(unit(0,"mm"), caption$widths[2], unit(1,"null"))

g <- rbind(g1, g2)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(legend)
grid.draw(g)

ここに画像の説明を入力

于 2016-03-11T20:18:09.653 に答える