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)
所以我的矩阵是:
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
我试过了:
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中做图表很新,所以任何帮助都会受到赞赏.
我认为使用 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 是非常值得的!
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)

| 归档时间: |
|
| 查看次数: |
3936 次 |
| 最近记录: |