如何解决定制的相关图颜色
我想具有不同的颜色值,例如,如果值介于0.5到0.7之间,则将其设置为绿色,将其设置为绿色,将其设置为蓝色,将其设置为0.7以下,将其设置为红色
我在下面的代码中使用了相关图
=
解决方法
最好使用ggplot
。自定义更容易。
如果需要,可以在size
中使用附加参数geom_text
来调整文本的大小。
# given a correlation matrix
corr_matrix <- cor(mtcars)
library(dplyr)
library(tidyr)
library(ggplot2)
corr_matrix %>%
as_tibble(rownames = "var1") %>%
gather(var2,value,-var1) %>%
ggplot(aes(x = var1,y = var2,fill = value)) +
geom_tile() +
geom_text(aes(label = round(value,digits = 2))) +
labs(x = "",y = "",fill = "Corr",title = "Correlation Matrix") +
coord_fixed() +
theme_minimal() +
scale_fill_gradientn(
limits = c(-1,1),# here choose the colours you want
colours = c("blue","green","red"),# here choose the intervals you want (must be inside rescale!)
values = scales::rescale(c(-1,0.5,0.7,1)))
只需加上数字[我个人会选择第一个]
corr_matrix %>%
as_tibble(rownames = "var1") %>%
gather(var2,colour = value)) +
geom_tile(colour = "gray20",fill = "white") +
geom_text(aes(label = round(value,title = "Correlation Matrix") +
coord_fixed() +
theme_minimal() +
scale_colour_gradientn(colours = c("blue",values = scales::rescale(c(-1,1)),limits = c(-1,1))
编辑
我添加了此标签是为了解决与标签排序有关的问题。
首先,我将编辑mtcars
使其看起来像您的数据。
colnames(mtcars) <- paste0("Month",1:11)
mtcars$Month12 <- rnorm(32)
好的,现在让我们继续图。我们只需要添加一个小的编辑:我们将var名称作为有序因子。
corr_matrix <- cor(mtcars)
library(dplyr)
library(tidyr)
library(ggplot2)
corr_matrix %>%
as_tibble(rownames = "var1") %>%
gather(var2,-var1) %>%
# here is the additional line you need!
mutate(across(c(var1,var2),factor,levels = paste0("Month",1:12),ordered = TRUE)) %>%
ggplot(aes(x = var1,fill = value)) +
geom_tile() +
geom_text(aes(label = round(value,digits = 2))) +
labs(x = "",title = "Correlation Matrix") +
coord_fixed() +
theme_minimal() +
scale_fill_gradientn(
limits = c(-1,1)))
它适用于{= {1}}版本> = 1.0.0。
如果您没有它,请改用它:
dplyr
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。