ggplot2 theme_classic显示x和y轴

时间:2016-03-12 16:28:34

标签: r ggplot2

我无法使用ggplot2重现简单的图形。我的目标是显示x和y轴。从网站上获取的这个基本示例不起作用,我不明白为什么。任何见解都非常感谢!

library(ggplot2)
df <- data.frame(x = 1:3, y = 1:3)
ggplot(df, aes(x, y)) + geom_point()+  theme_classic() + ggtitle("theme_classic()")

我也尝试过使用

theme(axis.line = element_line(colour = "grey50"))

但我有同样的问题,即我明白了 enter image description here

而不是预期的(不同数据集的示例,在我的示例中,点是缺少x和y轴) enter image description here

2 个答案:

答案 0 :(得分:3)

Mayby您正在寻找theme_bw()

ggplot(df, aes(x, y)) + geom_point() + theme_bw()

以下是theme_classic()

的解决方案
ggplot(df, aes(x, y)) + 
  geom_point() + 
  theme_classic() + 
  theme(
    axis.line.x = element_line(colour = "grey50"),
    axis.line.y = element_line(colour = "grey50")
  )

当需要查看主题的结构时,可以使用dput输出其值:

 dput(theme_classic())

这可以让你看到结果列表的哪些名称具有执行“消隐”的代码:

 theme_classic()[grepl("axis.line", names(theme_classic()) )]

$axis.line
List of 4
 $ colour  : chr "black"
 $ size    : NULL
 $ linetype: NULL
 $ lineend : NULL
 - attr(*, "class")= chr [1:2] "element_line" "element"

$axis.line.x
 list()
 - attr(*, "class")= chr [1:2] "element_blank" "element"

$axis.line.y
 list()
 - attr(*, "class")= chr [1:2] "element_blank" "element"

答案 1 :(得分:0)

奇怪的是,我没有任何问题让你的第一个例子完全像你希望的那样工作,我无法解释。但也许你可以尝试我通常做的事情:

ggplot(df, aes(x, y)) + 
  geom_point() + 
  theme(axis.line = element_line(colour = "black"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank())