R语言 在ggplot2中改变范围的颜色 R中的热图

R语言 在ggplot2中改变范围的颜色 R中的热图

热图将数据框架的两个属性之间的关系描述为一个彩色编码的瓦片。热图用数据框架的多个属性产生一个网格,表示每次采取的两个属性之间的关系。

使用中的数据集: 畅销书

让我们首先创建一个常规的热图,其颜色是默认提供的。我们将使用ggplot2库的geom_tile()函数。它基本上是用来创建热图的。

语法: geom_tile(x,y,fill)

参数

  • x:X轴上的位置
  • y:Y轴上的位置
  • fill:将被转换为颜色的数字值

在这个函数中,融化的数据框架的Var1和Var2分别被传递给x和y。这些代表了一次取两个的属性之间的关系。对填充参数提供,因为这将被用来根据一些数字值对瓷砖进行颜色编码。

例子

library(ggplot2)
library(reshape2)
  
df<-read.csv("bestsellers.csv")
  
data<-cor(df[sapply(df,is.numeric)])
data1<-melt(data)
  
ggplot(data1,
       aes(x=Var1,
           y=Var2,
           fill=value))+geom_tile()
R

输出

在ggplot2中改变范围的颜色 R中的热图

方法1:使用scale_fill_gradient()

在这个方法中,定义一个范围的颜色的起始值和结束值被作为一个参数给出。

语法: scale_fill_gradient(low, high, guide)

参数

  • low:起始值
  • high:结束值
  • guide:图例的类型

例子

library(ggplot2)
library(reshape2)
  
df<-read.csv("bestsellers.csv")
data<-cor(df[sapply(df,is.numeric)])
data1<-melt(data)
  
ggplot(data1,aes(x=Var1,
                 y=Var2,
                 fill=value))+geom_tile()+
scale_fill_gradient(low = "#86ebc9",
                    high = "#09855c",
                    guide = "colorbar")
R

输出

在ggplot2中改变范围的颜色 R中的热图

方法2:使用scale_fill_manual()

到目前为止,我们一直在为连续值添加颜色,在这个方法中,首先使用cut()函数将数值转换为离散范围。

语法: cut(data, breaks)

在这里,break是一个包含有数据除以的值的向量。现在再次绘制热力图,但要使用使其离散后创建的新数据。要为这种热图添加颜色,请使用scale_fill_manual()为每个范围添加颜色的向量。

语法: scale_fill_manual(interval, values=vector of colors)

例子

library(ggplot2)
library(reshape2)
  
df<-read.csv("bestsellers.csv")
data<-cor(df[sapply(df,is.numeric)])
data1<-melt(data)
  
data2<-data1
data2group<-cut(data2value,
                 breaks = c(-1,-0.5,0,0.5, 1))
  
  
ggplot(data2,aes(x=Var1,
                 y=Var2,
                 fill=group))+geom_tile()+
  scale_fill_manual(breaks = levels(data2$group),
                    values = c("#86ebc9", "#869ceb",
                               "#b986eb","#a1eb86"))
R

输出

在ggplot2中改变范围的颜色 R中的热图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册