我想将数值ages
放入矩阵单元格中,而现在,我将它们放在x-ais上
library("ggplot2")
library("reshape2")
mydata <- mtcars[, c(1,3,4,5,6,7)]
cormat <- round(cor(mydata),2)
melted_cormat <- melt(cormat)
ids = c(1, 2, 3, 4, 5,6)
ages = c(11, 22, 33, 44, 55,66)
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) +
scale_x_discrete(labels = ids ) +
scale_y_discrete(labels = ids)
当前输出:
使用geom_text
但在最后一个比例
+ geom_text(aes(label = ages), size = 3)
各种尝试出错
Error: Aesthetics must be either length 1 or the same as the data (4): label, x, y, fill
+ geom_text(label = interaction(rep(ages, length(ages)), sep = ', '), size = 3)
使用真实世界数据输出,您可以看到它为所有列重复了第一个小区ID的年龄;也许,它可能足以包括对角线中的第一个年龄,因为否则我们需要每个单元格两个年龄,这使得矩阵看起来很拥挤
我无法将wiki答案及其ifelse
调整为以下geom-text
工作的实际案例
geom_text(label = interaction(rep(ages, length(ages)), sep = ', ')) +
操作系统:Debian 8.5 答案 0 :(得分:2)
改为执行此操作(将标签添加到数据对象,然后使用geom_tile
然后使用geom_text
)
gg <- ggplot(data = cbind(melted_cormat,ids, ages),
aes(x=Var1, y=Var2, fill=value)) +
scale_x_discrete(labels = ids ) +
scale_y_discrete(labels = ids)
gg + geom_raster( aes(fill=value)) +
geom_text( aes(x=Var1, y=Var2, label = ages), color="red", size=3)
这将所需的数据带入命名环境,其中gg-functions将能够看到这些命名列。 geom_raster函数构建一个单元格网格,可以添加属性(&#34;美学和#34;),如颜色或文本。默认情况下,它模仿基本图形函数image
,所有热图类型函数都通过使用&#34; fill&#34; -aesthetic的范围构造的色标进行着色而得到。
输出
答案 1 :(得分:1)
Rawr对对角线可视化的评论回答
library("ggplot2")
library("reshape2")
mydata <- mtcars[, c(1,3,4,5,6,7)]
cormat <- round(cor(mydata),2)
melted_cormat <- melt(cormat)
ids = c(1, 2, 3, 4, 5,6)
ages = c(11, 22, 33, 44, 55,66)
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) +
geom_tile() +
geom_text(label = ifelse(melted_cormat$Var1 == melted_cormat$Var2, ages, ''))
输出
我无法将wiki答案及其ifelse
调整为以下geom-text
工作的实际案例
geom_text(label = interaction(rep(ages, length(ages)), sep = ', ')) +