R:使用 RColorBrewer Package 将 geom_text 标签更改为基于组的颜色
R: Change geom_text labels to color based on group with RColorBrewer Package
我有一个正在使用 ggplot2 绘图的数据集。我已经使用 geom_text 标记了样本,并希望使用 RColorBrewer“配对”为它们着色,因此它们是不同的颜色。我试过这个:
d <- data.frame(sample = seq(1, 100),
score = runif(100,min=-1,max=1),
day = runif(100,min=-25,max=100))
p <-ggplot(df, aes(x=Score,y=Day)) +
geom_text(aes(label = sample, color="Paired"))
但我得到的都是红色:
所以你正在做的是对 ggplot 说:“请根据 'paired' 值给这些点上色”。由于没有 'paired' 值,它为每个点分配相同的颜色,因为它无法区分。请参阅下面有关 mtcars 数据的示例:
library(tidyverse)
mtcars %>%
ggplot(
aes(
x = wt,
y = mpg,
colour = "Paired"
)
) +
geom_point()
这将给出这个情节:
相反,将您想要着色的值放入 aes asthetic 的颜色参数中。在我的例子中,我将分解 carb 变量,但你想输入你的数字的值。
然后您想使用 scale_color_brewer
功能来更改您的调色板。由于您的数据是定性的,因此您需要添加参数 type = "qual"
。下面是一个使用 mtcars 数据集的例子:
library(tidyverse)
mtcars %>%
ggplot(
aes(
x = wt,
y = mpg,
colour = factor(carb)
)
) +
geom_point() +
scale_color_brewer(type = "qual")
这导致了这张图片,其中的点根据它们的碳水化合物值着色:
您可能还想尝试省略类型参数。
我没有你的数据,所以我不知道它是否可行,但我认为你的代码最终应该看起来像这样:
p <-ggplot(df, aes(x=Score,y=Day)) +
geom_text(aes(label = sample, color=sample)) +
scale_color_brewer(type = "qual")
我有一个正在使用 ggplot2 绘图的数据集。我已经使用 geom_text 标记了样本,并希望使用 RColorBrewer“配对”为它们着色,因此它们是不同的颜色。我试过这个:
d <- data.frame(sample = seq(1, 100),
score = runif(100,min=-1,max=1),
day = runif(100,min=-25,max=100))
p <-ggplot(df, aes(x=Score,y=Day)) +
geom_text(aes(label = sample, color="Paired"))
但我得到的都是红色:
所以你正在做的是对 ggplot 说:“请根据 'paired' 值给这些点上色”。由于没有 'paired' 值,它为每个点分配相同的颜色,因为它无法区分。请参阅下面有关 mtcars 数据的示例:
library(tidyverse)
mtcars %>%
ggplot(
aes(
x = wt,
y = mpg,
colour = "Paired"
)
) +
geom_point()
这将给出这个情节:
相反,将您想要着色的值放入 aes asthetic 的颜色参数中。在我的例子中,我将分解 carb 变量,但你想输入你的数字的值。
然后您想使用 scale_color_brewer
功能来更改您的调色板。由于您的数据是定性的,因此您需要添加参数 type = "qual"
。下面是一个使用 mtcars 数据集的例子:
library(tidyverse)
mtcars %>%
ggplot(
aes(
x = wt,
y = mpg,
colour = factor(carb)
)
) +
geom_point() +
scale_color_brewer(type = "qual")
这导致了这张图片,其中的点根据它们的碳水化合物值着色:
您可能还想尝试省略类型参数。
我没有你的数据,所以我不知道它是否可行,但我认为你的代码最终应该看起来像这样:
p <-ggplot(df, aes(x=Score,y=Day)) +
geom_text(aes(label = sample, color=sample)) +
scale_color_brewer(type = "qual")