如何在格子中的条形图中设置 alpha?
how to set the alpha in a barchart in lattice?
考虑这个简单的例子:
tibble(time = c(1,2,3,4,5),
var1 = c(2,2,2,2,1),
var2 = c(2,1,1,4,5)) %>%
barchart(var1 + var2 ~ time,
data = .,
stack = TRUE,
horiz = FALSE,
par.settings = simpleTheme(col = c('red', 'blue'),
fill = c('red', 'blue'),
alpha = c(0.2)),
auto.key = TRUE)
尽管我进行了尝试,但我无法为条设置 alpha
。他们太亮了!有办法吗?
谢谢!
只需使用 rgb()
作为您的颜色,第四个参数是 alpha:
library(tidyverse)
library(lattice)
tibble(
time = c(1,2,3,4,5),
var1 = c(2,2,2,2,1),
var2 = c(2,1,1,4,5)) %>%
barchart(var1 + var2 ~ time, data = .,
stack = TRUE, horiz = FALSE,
par.settings =
simpleTheme(
col = c(
rgb(1,0,0,0.2),
rgb(0,0,1,0.2)),
fill = c(
rgb(1,0,0,0.2),
rgb(0,0,1,0.2))),
auto.key = TRUE)
panel.barchart
函数出于某种原因完全忽略了 alpha=
参数。 @rg255 关于更改颜色的建议无疑是解决此问题的最简单方法。您还可以 re-rewrite 面板函数实际使用 alpha=
选项。这是一个相当混乱的函数,但我把 re-write 放在这个要点中:https://gist.github.com/MrFlick/d705d63075dd1d0c804be8e5543b9e72。如果加载该函数,则只需添加
panel="panel.barchart.alpha"
到 barchart()
的电话。不幸的是,这稍微弄乱了自动键(它绘制的是点而不是矩形。但是你可以通过做这样的事情来将其恢复为默认值
pp <- barchart(..., panel="panel.barchart.alpha")
pp$legend$top$args$points <- FALSE
pp$legend$top$args$rectangles <- TRUE
给R指定颜色时,可以使用十六进制格式。在这种格式中,您可以在末尾添加两个与您需要的半透明度相关的数字。我并不是说这是最好的方法,但这是我在核心 R 绘图中实现半透明的方法。
例如
# Black points
plot(rnorm(10), rnorm(10), pch = 20, col = "#000000")
# Black points with 50% translucency
plot(rnorm(10), rnorm(10), pch = 20, col = "#00000050")
考虑这个简单的例子:
tibble(time = c(1,2,3,4,5),
var1 = c(2,2,2,2,1),
var2 = c(2,1,1,4,5)) %>%
barchart(var1 + var2 ~ time,
data = .,
stack = TRUE,
horiz = FALSE,
par.settings = simpleTheme(col = c('red', 'blue'),
fill = c('red', 'blue'),
alpha = c(0.2)),
auto.key = TRUE)
尽管我进行了尝试,但我无法为条设置 alpha
。他们太亮了!有办法吗?
谢谢!
只需使用 rgb()
作为您的颜色,第四个参数是 alpha:
library(tidyverse)
library(lattice)
tibble(
time = c(1,2,3,4,5),
var1 = c(2,2,2,2,1),
var2 = c(2,1,1,4,5)) %>%
barchart(var1 + var2 ~ time, data = .,
stack = TRUE, horiz = FALSE,
par.settings =
simpleTheme(
col = c(
rgb(1,0,0,0.2),
rgb(0,0,1,0.2)),
fill = c(
rgb(1,0,0,0.2),
rgb(0,0,1,0.2))),
auto.key = TRUE)
panel.barchart
函数出于某种原因完全忽略了 alpha=
参数。 @rg255 关于更改颜色的建议无疑是解决此问题的最简单方法。您还可以 re-rewrite 面板函数实际使用 alpha=
选项。这是一个相当混乱的函数,但我把 re-write 放在这个要点中:https://gist.github.com/MrFlick/d705d63075dd1d0c804be8e5543b9e72。如果加载该函数,则只需添加
panel="panel.barchart.alpha"
到 barchart()
的电话。不幸的是,这稍微弄乱了自动键(它绘制的是点而不是矩形。但是你可以通过做这样的事情来将其恢复为默认值
pp <- barchart(..., panel="panel.barchart.alpha")
pp$legend$top$args$points <- FALSE
pp$legend$top$args$rectangles <- TRUE
给R指定颜色时,可以使用十六进制格式。在这种格式中,您可以在末尾添加两个与您需要的半透明度相关的数字。我并不是说这是最好的方法,但这是我在核心 R 绘图中实现半透明的方法。
例如
# Black points
plot(rnorm(10), rnorm(10), pch = 20, col = "#000000")
# Black points with 50% translucency
plot(rnorm(10), rnorm(10), pch = 20, col = "#00000050")