R:ggplot 热图颜色变化
R: ggplot heatmap color change
df.team_data <- expand.grid(teams = c("Team A", "Team B", "Team C", "Team D")
,metrics = c("Metric 1", "Metric 2", "Metric 3", "Metric 4", "Metric 5")
)
set.seed(41)
df.team_data$performance <- sample(c(0, 1), 20, replace = TRUE)
head(df.team_data)
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance))
我有一个非常简单的热图,只有两种颜色。如何指定哪些颜色与 performance
的值关联?为此,我希望 1 的性能为深蓝色,0 的性能为浅蓝色。另外,有没有办法将图例更改为二进制?
您的数据集 "performance" 列中的值采用 "numeric" 格式。
使用 factor()
将其转换为一个因子,您的图表将具有二进制图例:
df.team_data <- expand.grid(teams = c("Team A", "Team B", "Team C", "Team D")
,metrics = c("Metric 1", "Metric 2", "Metric 3", "Metric 4", "Metric 5")
)
set.seed(41)
df.team_data$performance <- sample(c(0, 1), 20, replace = TRUE)
df.team_data$performance<-factor(df.team_data$performance)
head(df.team_data)
library(ggplot2)
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance))
已更新
col.plot<-c('lightblue','darkblue')
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance))+scale_fill_manual(values=col.plot)
根据需要更改 col.plot
中的值
如果您使用 scale_fill_gradient()
并设置几个关于高值和低值颜色的选项,我想您可以得到您想要的。您还可以使用 breaks ()
.
设置性能变量中的中断
使用您的代码我获得了以下信息:
df.team_data <- expand.grid(teams = c("Team A", "Team B", "Team C", "Team D")
,metrics = c("Metric 1", "Metric 2", "Metric 3", "Metric 4", "Metric 5")
)
df.team_data$performance <- sample(c(0, 1), 20, replace = TRUE)
head(df.team_data)
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance)) + scale_fill_gradient('performance', limits=c(0, 1), breaks = c(0, 0.25, 0.5, 0.75, 1), low = "lightblue", high = "darkblue")
df.team_data <- expand.grid(teams = c("Team A", "Team B", "Team C", "Team D")
,metrics = c("Metric 1", "Metric 2", "Metric 3", "Metric 4", "Metric 5")
)
set.seed(41)
df.team_data$performance <- sample(c(0, 1), 20, replace = TRUE)
head(df.team_data)
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance))
我有一个非常简单的热图,只有两种颜色。如何指定哪些颜色与 performance
的值关联?为此,我希望 1 的性能为深蓝色,0 的性能为浅蓝色。另外,有没有办法将图例更改为二进制?
您的数据集 "performance" 列中的值采用 "numeric" 格式。
使用 factor()
将其转换为一个因子,您的图表将具有二进制图例:
df.team_data <- expand.grid(teams = c("Team A", "Team B", "Team C", "Team D")
,metrics = c("Metric 1", "Metric 2", "Metric 3", "Metric 4", "Metric 5")
)
set.seed(41)
df.team_data$performance <- sample(c(0, 1), 20, replace = TRUE)
df.team_data$performance<-factor(df.team_data$performance)
head(df.team_data)
library(ggplot2)
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance))
已更新
col.plot<-c('lightblue','darkblue')
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance))+scale_fill_manual(values=col.plot)
根据需要更改 col.plot
中的值
如果您使用 scale_fill_gradient()
并设置几个关于高值和低值颜色的选项,我想您可以得到您想要的。您还可以使用 breaks ()
.
使用您的代码我获得了以下信息:
df.team_data <- expand.grid(teams = c("Team A", "Team B", "Team C", "Team D")
,metrics = c("Metric 1", "Metric 2", "Metric 3", "Metric 4", "Metric 5")
)
df.team_data$performance <- sample(c(0, 1), 20, replace = TRUE)
head(df.team_data)
ggplot(data = df.team_data, aes(x = metrics, y = teams)) +
geom_tile(aes(fill = performance)) + scale_fill_gradient('performance', limits=c(0, 1), breaks = c(0, 0.25, 0.5, 0.75, 1), low = "lightblue", high = "darkblue")