图像中的r轴标签

Gab*_*yLP 7 label axis r image

我需要根据呼叫中心的空间位置绘制度量标准.我用R写了一个小例子:

tt<-data.frame(a1=c(0.4,.5,.5,.7),a2=c(.5,.6,.7,.8), a3=c(.8,.7,.9,.8))
row.names(tt)<-paste("L", 1:4, sep='')
tt<-as.matrix(tt)
tt
Run Code Online (Sandbox Code Playgroud)

所以我的矩阵是:

> tt
    a1  a2  a3
L1 0.4 0.5 0.8
L2 0.5 0.6 0.7
L3 0.5 0.7 0.9
L4 0.7 0.8 0.8
Run Code Online (Sandbox Code Playgroud)

我试过了:

palette <- colorRampPalette(c('#f0f3ff','#0033BB'))(256)
library(fields)
image.plot(t(tt[rev(order(row.names(tt))),]),col = palette, axes=F ,
       lab.breaks=NULL)
Run Code Online (Sandbox Code Playgroud)

我不得不对矩阵进行转置和重新排序,因为我想要你在表格中阅读它的方式.

所以我得到了:

在此输入图像描述

我需要在每个方块旁边添加行名和列名.例如,左上角的平方应在左侧为"L1",在顶部为"a1".

另外我想在每个方块中添加值.

我尝试过axis()但是得到了错误的结果.我在R中做图表很新,所以任何帮助都会受到赞赏.

eam*_*vey 6

我认为使用 ggplot 会让你更开心——它使这类事情变得简单,更不容易出错,而且绘图代码更具可读性。为此,您需要将数据保存在数据框中,并将其熔化为“长形式”(这里我使用来自 reshape2 包的熔化,但您也可以以这种形式设置数据框以开始)。尝试这个:

library(ggplot2)
library(reshape2)

tt<-data.frame(a1=c(0.4,.5,.5,.7),a2=c(.5,.6,.7,.8), a3=c(.8,.7,.9,.8))
tt$row <- paste("L", 1:4, sep='')
tt_melt <- melt(tt)

ggplot(data=tt_melt,
       aes(x=variable, y=row, fill=value)) + geom_tile() + 
       geom_text(aes(label=value), color='white') + theme_bw()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果您愿意,ggplot 还允许您控制色标。如果您要使用 R 进行绘图,那么花几个小时学习 ggplot 是非常值得的!


use*_*650 6

axis即使使用outer参数,该命令似乎也不会在图像外部绘制标签.

但是,如果你之后使用image函数(with add=TRUE),它确实有效image.plot

image.plot(t(tt[rev(order(row.names(tt))),]),col = palette, axes=FALSE, 
                                                          lab.breaks=NULL)

# axis labels
image(t(tt[rev(order(row.names(tt))),]), col = palette, axes=FALSE, add=TRUE)
axis(3, at=seq(0,1, length=3), labels=colnames(tt), lwd=0, pos=1.15)
axis(2, at=seq(1,0, length=4), labels=rownames(tt), lwd=0, pos=-0.25)

# add values
e <- expand.grid(seq(0,1, length=3), seq(1,0, length=4))
text(e, labels=t(tt))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述