6

一部のジャーナルでは、プロット領域全体を囲むボックスではなく、x 軸と y 軸のみをプロットに表示するという慣例があります。どうすればggplot2でこれを達成できますか? HEREtheme_minimal_cb_Lから試しましたが、ここに示すように、プロットの周りのボックス全体が消去されているようです (x 軸と y 軸は残りません)。

ここに画像の説明を入力

私が使用しているコードは次のとおりです。

dat <- structure(list(x = c(0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.05, 
    1.1, 1.15, 1.2, 1.25, 1.3), y1 = c(34, 30, 26, 23, 21, 19, 17, 
    16, 15, 13, 12, 12, 11), y2 = c(45, 39, 34, 31, 28, 25, 23, 21, 
    19, 17, 16, 15, 14)), .Names = c("x", "y1", "y2"), row.names = c(NA, 
    -13L), class = "data.frame")


library(reshape2); library(ggplot2)
dat2 <- melt(dat, id='x')

theme_minimal_cb_L <- function (base_size = 12, base_family = "", ...){
  modifyList (theme_minimal (base_size = base_size, base_family = base_family),
              list (axis.line = element_line (colour = "black")))
}

ggplot(data=dat2, aes(x=x, y=value, color=variable)) + 
    geom_point(size=3) + geom_line(size=.5) +
    theme_minimal_cb_L()
4

2 に答える 2

9

プロットの左側と下部の線だけが必要だと言っていると思いますが、正しいですか?

theme(panel.border = element_blank(), axis.line = element_line())

panel.borderは境界線全体を削除し、axis.lineを使用してx軸線とy軸線を追加します。


編集:あなたが投稿した追加のテーマのものは私にはうまくいきませんでした。実際に実行したコードを投稿します

dat <- structure(list(x = c(0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.05, 
    1.1, 1.15, 1.2, 1.25, 1.3), y1 = c(34, 30, 26, 23, 21, 19, 17, 
    16, 15, 13, 12, 12, 11), y2 = c(45, 39, 34, 31, 28, 25, 23, 21, 
    19, 17, 16, 15, 14)), .Names = c("x", "y1", "y2"), row.names = c(NA, 
    -13L), class = "data.frame")


library(reshape2); library(ggplot2)
dat2 <- melt(dat, id='x')

ggplot(data=dat2, aes(x=x, y=value, color=variable)) + 
    geom_point(size=3) + geom_line(size=.5) +
    theme(panel.border = element_blank(), axis.line = element_line())

# or using the template you used from talkstats...
ggplot(data=dat2, aes(x=x, y=value, color=variable)) + 
    geom_point(size=3) + geom_line(size=1.5) +
    scale_y_continuous(breaks=seq(0, 45, by=5)) +
    scale_x_continuous(breaks=seq(.7, 1.3, by=.05)) +
    theme_bw() + ylab("Sample Size") + xlab("Mean Difference") +
    theme(legend.position="bottom", legend.title=element_blank(),
        legend.key = element_rect(colour = 'white'), 
        legend.background = element_rect(colour = "black")) +
    ggtitle("Sample Size vs. Mean Difference by Power") +
    theme(panel.border = element_blank(), axis.line = element_line())
于 2012-10-14T15:11:47.143 に答える
9

axis.line()もう機能していないようです。代わりに使用axis.line.x()し、axis.line.y()

したがって、これをプロットに追加します。

... + theme(panel.border = element_blank(),
axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black")) + ...

トリックを行うでしょう。

于 2016-04-28T11:44:42.863 に答える