如何在 geom_bar ggplot2 中为许多列着色相同的颜色
How to color many columns the same color in geom_bar ggplot2
我有以下数据:
> Dummydata
Sample r.K
1 E1 0.084150
2 E2 0.015170
3 E3 0.010662
4 E4 0.016123
5 EK1 0.010289
6 EK2 0.017484
7 EK3 0.014685
8 EK4 0.014272
9 EK5 0.012551
10 K1 0.010069
11 K2 0.010253
12 K3 0.010568
13 K4 0.011230
14 K5 0.010286
我用我的数据做了一个 geom_col 图:
plot_dummy_data <- Dummydata %>% ggplot(aes(x = Sample, y =r.K)) +
geom_col(fill = "#FAE0B1") + labs(y= "fitness cost", x = "sample")
Plot
我想为前 4 列着色相同的颜色,因为它们对应于特定主机,接下来的 5 列为另一种颜色,最后 5 列为第三种颜色。
我看过 scale_fill_manual() 函数,但我不明白如何为一组列而不是所有列选择特定颜色。
我一整天都在尝试,遍历了我在这里能找到的所有内容,但我仍然没有弄明白。我是 R 的初学者,非常感谢任何帮助。
实现您想要的结果的一个选择是
- 为列组添加标识符,例如在下面的代码示例数据中,您可以使用
gsub("\d", "", Sample)
从 Sample
列中删除数字。
- 在填充美学上映射组标识符变量。
- 通过
scale_fill_manual
设置您想要的颜色。
library(ggplot2)
library(dplyr)
Dummydata %>%
mutate(group = gsub("\d", "", Sample)) %>%
ggplot(aes(x = Sample, y = r.K, fill = group)) +
geom_col() +
scale_fill_manual(values = c(E = "red", EK = "blue", K = "yellow")) +
labs(y = "fitness cost", x = "sample")
数据
Dummydata <- structure(list(Sample = c(
"E1", "E2", "E3", "E4", "EK1", "EK2",
"EK3", "EK4", "EK5", "K1", "K2", "K3", "K4", "K5"
), r.K = c(
0.08415,
0.01517, 0.010662, 0.016123, 0.010289, 0.017484, 0.014685, 0.014272,
0.012551, 0.010069, 0.010253, 0.010568, 0.01123, 0.010286
)), class = "data.frame", row.names = c(
"1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14"
))
我有以下数据:
> Dummydata
Sample r.K
1 E1 0.084150
2 E2 0.015170
3 E3 0.010662
4 E4 0.016123
5 EK1 0.010289
6 EK2 0.017484
7 EK3 0.014685
8 EK4 0.014272
9 EK5 0.012551
10 K1 0.010069
11 K2 0.010253
12 K3 0.010568
13 K4 0.011230
14 K5 0.010286
我用我的数据做了一个 geom_col 图:
plot_dummy_data <- Dummydata %>% ggplot(aes(x = Sample, y =r.K)) +
geom_col(fill = "#FAE0B1") + labs(y= "fitness cost", x = "sample")
Plot
我想为前 4 列着色相同的颜色,因为它们对应于特定主机,接下来的 5 列为另一种颜色,最后 5 列为第三种颜色。
我看过 scale_fill_manual() 函数,但我不明白如何为一组列而不是所有列选择特定颜色。
我一整天都在尝试,遍历了我在这里能找到的所有内容,但我仍然没有弄明白。我是 R 的初学者,非常感谢任何帮助。
实现您想要的结果的一个选择是
- 为列组添加标识符,例如在下面的代码示例数据中,您可以使用
gsub("\d", "", Sample)
从Sample
列中删除数字。 - 在填充美学上映射组标识符变量。
- 通过
scale_fill_manual
设置您想要的颜色。
library(ggplot2)
library(dplyr)
Dummydata %>%
mutate(group = gsub("\d", "", Sample)) %>%
ggplot(aes(x = Sample, y = r.K, fill = group)) +
geom_col() +
scale_fill_manual(values = c(E = "red", EK = "blue", K = "yellow")) +
labs(y = "fitness cost", x = "sample")
数据
Dummydata <- structure(list(Sample = c(
"E1", "E2", "E3", "E4", "EK1", "EK2",
"EK3", "EK4", "EK5", "K1", "K2", "K3", "K4", "K5"
), r.K = c(
0.08415,
0.01517, 0.010662, 0.016123, 0.010289, 0.017484, 0.014685, 0.014272,
0.012551, 0.010069, 0.010253, 0.010568, 0.01123, 0.010286
)), class = "data.frame", row.names = c(
"1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14"
))