R语言 ggvis中的数字热图
在这篇文章中,我们将研究如何使用R编程语言中的ggvis包生成带有数字的热图。
ggvis包
R语言中的ggvis包是用来提供数据可视化的。它被用来创建可视化的交互式图形工具,用于数据的绘制和表示。该包可以通过以下命令安装到工作空间中。
使用的方法
ggvis()方法
ggvis包中的ggvis方法用于启动ggvis图形窗口。ggvis方法的语法如下。
语法:ggvis( data , mp1, mp2.,)
参数 :
data - 要在热图上绘制的数据集。
mp1, mp2,… - 要绘制的地图变量。
layer_rects()方法
layer_rects()方法用于指定高度、y或y2等两个参数中的任何一个,以及以下两个参数,宽度、x或x2。
layer_text()方法
ggvis包中的layer_text方法等同于geom_text()方法。它是用来给图谱添加文本内容的注释。它以X轴和Y轴的特定规格为参数。它也可以用来为添加到绘图中的内容添加文本和颜色。
语法: layer_text (x , y = , text:= , fill:=)
参数 :
x – X轴的标签和它的比例定位。
y - Y轴的标签和它的比例定位。
text – 要添加到热图中的文本。
fill - 要添加到热图上的颜色。
Scale_nominal()方法
比例尺也可以用scale_nominal()方法添加到ggvis图中,该方法用于指定一个比例尺。如果刻度值是因子类型的,最好使用scale_nominal。
语法: scale_nominal(type, padding)
参数 :
type – 比例尺的类型。
padding – 热图中各块之间要设置的padding。
绘制热力图
要绘制热力图,首先我们必须创建一个数据框架,用它来绘制热力图,然后我们使用管道操作符和不同的方法来绘制热力图,包括 ggvis() , layer_rects() , layer_text() , and scale_nominal()。
data_frame <- data.frame(
col1 = c("A","B","C","D","A","B",
"C","D","A","B","C","D","A","B","C","D"),
col2 = c("a","a","a","a","b","b","b",
"b","c","c","c","c","d","d","d","d"),
col3 = c(68,119,26,7,20,84,17,94,
14,54,14,10,5,29,15,16))
print("Data Frame")
print(data_frame)
data_frame%>%
ggvis(~col1, ~col2, fill=~col3) %>%
layer_rects(width = band(), height = band()) %>%
layer_text(
x = prop("x", ~col1, scale = "xcenter"),
y = prop("y", ~col2, scale = "ycenter"),
text:=~col3, fill:="white") %>%
scale_nominal("x", padding = 0, points = FALSE) %>%
scale_nominal("y", padding = 0, points = FALSE)
输出

定制热力图
热力图可以通过指定诸如 “fontSize “的属性来增加/减少热力图上数字的字体大小。另外,”fill “参数可以用来改变热力图中的数字在R中的颜色。
下面的代码显示了用填充参数表示的数字的 “黄色 “颜色。
data_frame <- data.frame(
col1 = c("A","B","C","D","A","B",
"C","D","A","B","C","D","A","B","C","D"),
col2 = c("a","a","a","a","b","b","b",
"b","c","c","c","c","d","d","d","d"),
col3 = c(68,119,26,7,20,84,17,94,14,
54,14,10,5,29,15,16))
data_frame%>%
ggvis(~col1, ~col2, fill=~col3) %>%
layer_rects(width = band(), height = band()) %>%
layer_text(
x = prop("x", ~col1, scale = "xcenter"),
y = prop("y", ~col2, scale = "ycenter"),
text:=~col3, fontSize:= 25, fill:="yellow") %>%
scale_nominal("x", padding = 0, points = FALSE) %>%
scale_nominal("y", padding = 0, points = FALSE)
输出
