一つのオプションを参照してください。それは、関連するgrobに到達するためにリスト内の長いリストを通る経路をたどることを伴う。場合によっては、grid
の編集機能を使用して関連するgrobsを編集する方が簡単かもしれません(わずかながらもそうかもしれません)。
library(ggplot2)
library(grid)
# The plot
bplot <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, group = Species,
shape = Species,lty = Species)) +
geom_point(size = 3) +
geom_smooth(method = "lm", se = F, color = "black") +
theme_minimal() +
theme(legend.key.width = unit(1.5, "cm"),
legend.key.height = unit(1, "cm"),
legend.key = element_rect(colour = "grey50", size = .5))
# Get the plot grob
g = ggplotGrob(bplot)
# Get a list of the grobs
grid.ls(grid.force(g))
grobsのリストを調べます。私たちが編集したいgrobsはリストの一番下にあります - 名前は "key"で始まります。凡例には3つのキーがあるので、3つのグループの3つのグループが3つあります。
キー-3-1-bg.4-2-4-2
キー3-1-1.4-2-4-2
キー-3:各グループ内で三grobsありますここで興味のない - -1-2.4-2-4-2
GRID.segments.819
最初はバックグラウンドです。
2番目のポイントは、垂直位置を編集するポイントです。
3番目は、子を含むgrobを指します - GRID.segments - 線分。線分の垂直位置を編集したい。 editGrob()
コマンドで
は、gPath
グロブを編集することが一覧表示されますが、grep=TRUE
は、正規表現を使用することができることを意味し、global=TRUE
は、すべての試合には影響されることを意味します。したがって、編集ごとに1つのコマンドだけです。
# Edit the 'key' grobs
# Move the point up a little
g = editGrob(grid.force(g), gPath("key-[1-9]-1-1"), grep = TRUE, global = TRUE,
y = unit(0.6, "npc"))
# Move the line segment down a little
g = editGrob(grid.force(g), gPath("GRID.segments"), grep = TRUE, global = TRUE,
y0 = unit(0.3, "npc"), y1 = unit(0.3, "npc"))
# Draw it
grid.newpage()
grid.draw(g)
'legend.key.width =ユニット(1.5、 "CM")を試みる' –
凡例の背景の幅を制御し、この場合には有用ではなかったlegend.key.width。 – collnell
legend.key.widthは、凡例の背景の幅を制御します。キーを広げることで、より多くの行を見ることができます。したがって、行の種類は読みやすくなります。これはあなたが望むものではありませんか?図形を線の種類から分離するが、ラベルが1つの場合は、プロットgrobの構造を調べる必要があると思います。私はそれができると確信しています。 –