我试图找到ggplot2R包中的美学和几何列表以及help(qplot不会产生任何结果的问题.我找不到一种方法来调用只有美学或几何的帮助.
在R中调用美学帮助的正确方法是什么?
对于自定义ggplot2主题,我想改变一些的默认美学geom,比如我想要红点而不是黑点.
从这个答案我知道我们可以改变geom使用该函数的默认值,update_geom_default但我想知道是否有可能只在我们调用时改变颜色theme_red_dots?
我天真尝试的例子:
library(ggplot2)
theme_red_dots <- function(...) {
update_geom_defaults("point", list(colour = "red"))
theme_minimal() +
theme(...)
}
Run Code Online (Sandbox Code Playgroud)
看起来不错:
ggplot(mtcars, aes(mpg, disp)) +
geom_point() +
theme_red_dots()
Run Code Online (Sandbox Code Playgroud)
但是当我打电话时,我希望这些点再次变成黑色
ggplot(mtcars, aes(mpg, disp)) +
geom_point()
Run Code Online (Sandbox Code Playgroud)
提前致谢!
以下是我认为这可能有用的原因示例.我们可以panel.background很容易地变成黑色,但如果我们不将美学与颜色相映射,这将使得无法看到这些点.(theme_black当然可以讨论这方面的用处,但我想避免对此进行争论.)
theme_black <- function(...) {
theme_minimal() +
theme(panel.background = element_rect(fill = "black")) +
theme(...)
}
# update_geom_defaults("point", list(colour = "black"))
ggplot(mtcars, aes(mpg, disp)) +
geom_point() +
theme_black()
Run Code Online (Sandbox Code Playgroud)
更改内部点的颜色geom_point()是一个选项(请参阅@ zx8754答案),但这需要用户theme_black()更改它,而我想知道是否有办法在内部执行此操作 …
我正在尝试使用 scale_fill_manual 更改 ggplot2 中条形图中的颜色,但由于某种原因,仅当我在美学中使用填充选项时才有效。我举了一个例子:
library(ggplot2)
library(dplyr)
iris %>% ggplot(aes(x=Sepal.Width,y=Sepal.Length))+
geom_bar(stat="identity") + scale_fill_manual(values='lightblue')
Run Code Online (Sandbox Code Playgroud)
现在,使用美学中的填充选项,它可以工作:
iris %>% ggplot(aes(x=Sepal.Width,y=Sepal.Length, fill=factor(2) ))+
geom_bar(stat="identity")+scale_fill_manual(values='lightblue')
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在不使用填充选项的情况下更改条形颜色,仅使用 scale_fill_manual?
我想更改ggplot2中的默认颜色方案.也就是说,我想在脚本的一个点定义一个颜色方案(比如说:viridis),这样所有后续的ggplot图都将使用这种颜色方案,而不必+ scale_color_viridis()每次调用.
我已经看过这篇SO帖子了update_geom_defaults(geom, new),但我找不到解释这个函数的方法来使用像viridis这样的方案.
我也尝试更新ggplot颜色,类似于这篇文章,但是,正如@baptise所指出的,这种方法并不真正起作用.
简而言之:
定义新的配色方案,例如,viridis
随后调用ggplot而不添加,+ scale_color_viridis()但这个ggplot图仍使用viridis颜色方案.