从图形的顶部到底部具有颜色渐变的水平条形图
horizontal barplot with color gradient from top to bottom of the graphic
我想用从图形的顶部到底部的颜色渐变来填充条形图。也就是说,无论条形长度如何,颜色都应该从上到下的方向变浅。我在 photoshop 中创建了 2 个模拟。第一个(图 1)是通过以下脚本绘制的(长条为深色,短条为浅色)。然而第二个(图2)是我想详细说明的(顶部的条是深色的,在底部方向变亮)。
specie momento M1_sava
zr M1 1
yr M1 0.86
xr M1 1
wr M1 1
vr M1 1
ur M1 0.74
tr M1 0.39
sr M1 0.83
rr M1 0.83
qr M1 0
pr M1 0.7
or M1 0.11
nr M1 1
mr M1 0
lr M1 0
kr M1 0
jr M1 0
Ir M1 0.83
hr M1 0
Gr M1 0
fr M1 0
er M1 0
dr M1 0
cr M1 0.04
br M1 0
ar M1 0
zr M2 0.33
yr M2 0.86
xr M2 0.39
wr M2 0.02
vr M2 0.07
ur M2 0.02
tr M2 0.87
sr M2 0.06
rr M2 0.63
qr M2 0.33
pr M2 0.91
or M2 0.67
nr M2 0.18
mr M2 0.08
lr M2 0
kr M2 0
jr M2 0
Ir M2 0
hr M2 0.08
Gr M2 0
fr M2 0.04
er M2 0
dr M2 0
cr M2 0
br M2 0
ar M2 0
zr M3 0.04
yr M3 0.32
xr M3 0.02
wr M3 0
vr M3 0
ur M3 0
tr M3 0.96
sr M3 0.06
rr M3 0.18
qr M3 0.33
pr M3 0.63
or M3 1
nr M3 0
mr M3 0.94
lr M3 0.17
kr M3 0
jr M3 0.41
Ir M3 0.04
hr M3 0.44
Gr M3 0.17
fr M3 0.02
er M3 0
dr M3 0
cr M3 0
br M3 0
ar M3 0
zr M4 0
yr M4 0
xr M4 0
wr M4 0
vr M4 0
ur M4 0
tr M4 0.89
sr M4 0
rr M4 0.03
qr M4 0.22
pr M4 0.41
or M4 0.46
nr M4 0
mr M4 0.81
lr M4 0.39
kr M4 0.7
jr M4 0.7
Ir M4 0
hr M4 0.87
Gr M4 0.91
fr M4 0.33
er M4 0.37
dr M4 0.24
cr M4 0.15
br M4 0
ar M4 0
Dataset <- read.csv(file = "data.csv", header = TRUE, sep = ";")
attach(Dataset)
library(ggplot2)
ggplot(Dataset, aes(specie, M1_sava)) +
facet_wrap(~ momento, nrow = 1) +
coord_flip() +
geom_col(aes(fill = M1_sava)) +
scale_fill_gradient2(low = "white", high = "red") +
theme_bw(base_size = 10)
你的代码就差不多了,你只是把颜色变量弄错了。
(另外,请不要 attach
数据。)
library(ggplot2)
ggplot(Dataset, aes(specie, M1_sava)) +
facet_wrap(~ momento, nrow = 1) +
coord_flip() +
geom_col(aes(fill = as.numeric(specie))) +
scale_fill_gradient2(low = "white", high = "red") +
theme_bw(base_size = 10)
数据 dput
格式。
Dataset <-
structure(list(specie = structure(c(26L, 25L, 24L, 23L, 22L,
21L, 20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L,
8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 26L, 25L, 24L, 23L, 22L, 21L,
20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L,
7L, 6L, 5L, 4L, 3L, 2L, 1L, 26L, 25L, 24L, 23L, 22L, 21L, 20L,
19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L,
6L, 5L, 4L, 3L, 2L, 1L, 26L, 25L, 24L, 23L, 22L, 21L, 20L, 19L,
18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L,
5L, 4L, 3L, 2L, 1L), .Label = c("ar", "br", "cr", "dr", "er",
"fr", "Gr", "hr", "Ir", "jr", "kr", "lr", "mr", "nr", "or", "pr",
"qr", "rr", "sr", "tr", "ur", "vr", "wr", "xr", "yr", "zr"), class = "factor"),
momento = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L), .Label = c("M1", "M2", "M3", "M4"), class = "factor"),
M1_sava = c(1, 0.86, 1, 1, 1, 0.74, 0.39, 0.83, 0.83, 0,
0.7, 0.11, 1, 0, 0, 0, 0, 0.83, 0, 0, 0, 0, 0, 0.04, 0, 0,
0.33, 0.86, 0.39, 0.02, 0.07, 0.02, 0.87, 0.06, 0.63, 0.33,
0.91, 0.67, 0.18, 0.08, 0, 0, 0, 0, 0.08, 0, 0.04, 0, 0,
0, 0, 0, 0.04, 0.32, 0.02, 0, 0, 0, 0.96, 0.06, 0.18, 0.33,
0.63, 1, 0, 0.94, 0.17, 0, 0.41, 0.04, 0.44, 0.17, 0.02,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.89, 0, 0.03, 0.22, 0.41,
0.46, 0, 0.81, 0.39, 0.7, 0.7, 0, 0.87, 0.91, 0.33, 0.37,
0.24, 0.15, 0, 0)), class = "data.frame", row.names = c(NA,
-104L))
我想用从图形的顶部到底部的颜色渐变来填充条形图。也就是说,无论条形长度如何,颜色都应该从上到下的方向变浅。我在 photoshop 中创建了 2 个模拟。第一个(图 1)是通过以下脚本绘制的(长条为深色,短条为浅色)。然而第二个(图2)是我想详细说明的(顶部的条是深色的,在底部方向变亮)。
specie momento M1_sava
zr M1 1
yr M1 0.86
xr M1 1
wr M1 1
vr M1 1
ur M1 0.74
tr M1 0.39
sr M1 0.83
rr M1 0.83
qr M1 0
pr M1 0.7
or M1 0.11
nr M1 1
mr M1 0
lr M1 0
kr M1 0
jr M1 0
Ir M1 0.83
hr M1 0
Gr M1 0
fr M1 0
er M1 0
dr M1 0
cr M1 0.04
br M1 0
ar M1 0
zr M2 0.33
yr M2 0.86
xr M2 0.39
wr M2 0.02
vr M2 0.07
ur M2 0.02
tr M2 0.87
sr M2 0.06
rr M2 0.63
qr M2 0.33
pr M2 0.91
or M2 0.67
nr M2 0.18
mr M2 0.08
lr M2 0
kr M2 0
jr M2 0
Ir M2 0
hr M2 0.08
Gr M2 0
fr M2 0.04
er M2 0
dr M2 0
cr M2 0
br M2 0
ar M2 0
zr M3 0.04
yr M3 0.32
xr M3 0.02
wr M3 0
vr M3 0
ur M3 0
tr M3 0.96
sr M3 0.06
rr M3 0.18
qr M3 0.33
pr M3 0.63
or M3 1
nr M3 0
mr M3 0.94
lr M3 0.17
kr M3 0
jr M3 0.41
Ir M3 0.04
hr M3 0.44
Gr M3 0.17
fr M3 0.02
er M3 0
dr M3 0
cr M3 0
br M3 0
ar M3 0
zr M4 0
yr M4 0
xr M4 0
wr M4 0
vr M4 0
ur M4 0
tr M4 0.89
sr M4 0
rr M4 0.03
qr M4 0.22
pr M4 0.41
or M4 0.46
nr M4 0
mr M4 0.81
lr M4 0.39
kr M4 0.7
jr M4 0.7
Ir M4 0
hr M4 0.87
Gr M4 0.91
fr M4 0.33
er M4 0.37
dr M4 0.24
cr M4 0.15
br M4 0
ar M4 0
Dataset <- read.csv(file = "data.csv", header = TRUE, sep = ";")
attach(Dataset)
library(ggplot2)
ggplot(Dataset, aes(specie, M1_sava)) +
facet_wrap(~ momento, nrow = 1) +
coord_flip() +
geom_col(aes(fill = M1_sava)) +
scale_fill_gradient2(low = "white", high = "red") +
theme_bw(base_size = 10)
你的代码就差不多了,你只是把颜色变量弄错了。
(另外,请不要 attach
数据。)
library(ggplot2)
ggplot(Dataset, aes(specie, M1_sava)) +
facet_wrap(~ momento, nrow = 1) +
coord_flip() +
geom_col(aes(fill = as.numeric(specie))) +
scale_fill_gradient2(low = "white", high = "red") +
theme_bw(base_size = 10)
数据 dput
格式。
Dataset <-
structure(list(specie = structure(c(26L, 25L, 24L, 23L, 22L,
21L, 20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L,
8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 26L, 25L, 24L, 23L, 22L, 21L,
20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L,
7L, 6L, 5L, 4L, 3L, 2L, 1L, 26L, 25L, 24L, 23L, 22L, 21L, 20L,
19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L,
6L, 5L, 4L, 3L, 2L, 1L, 26L, 25L, 24L, 23L, 22L, 21L, 20L, 19L,
18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L,
5L, 4L, 3L, 2L, 1L), .Label = c("ar", "br", "cr", "dr", "er",
"fr", "Gr", "hr", "Ir", "jr", "kr", "lr", "mr", "nr", "or", "pr",
"qr", "rr", "sr", "tr", "ur", "vr", "wr", "xr", "yr", "zr"), class = "factor"),
momento = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L), .Label = c("M1", "M2", "M3", "M4"), class = "factor"),
M1_sava = c(1, 0.86, 1, 1, 1, 0.74, 0.39, 0.83, 0.83, 0,
0.7, 0.11, 1, 0, 0, 0, 0, 0.83, 0, 0, 0, 0, 0, 0.04, 0, 0,
0.33, 0.86, 0.39, 0.02, 0.07, 0.02, 0.87, 0.06, 0.63, 0.33,
0.91, 0.67, 0.18, 0.08, 0, 0, 0, 0, 0.08, 0, 0.04, 0, 0,
0, 0, 0, 0.04, 0.32, 0.02, 0, 0, 0, 0.96, 0.06, 0.18, 0.33,
0.63, 1, 0, 0.94, 0.17, 0, 0.41, 0.04, 0.44, 0.17, 0.02,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.89, 0, 0.03, 0.22, 0.41,
0.46, 0, 0.81, 0.39, 0.7, 0.7, 0, 0.87, 0.91, 0.33, 0.37,
0.24, 0.15, 0, 0)), class = "data.frame", row.names = c(NA,
-104L))