Here is a better-ish solution:
par(mar=c(5,4.5,4,7))
image(sample, col=rainbow(25), axes=F) #redblue() doesn't work on my computer.
axis(2)
axis(1, at=seq(0,0.8,0.2), labels=rownames(sample))
image.plot(sample, legend.only=T)
EDIT: Does the plot below look like what you are looking for?
sample = cor(matrix(rnorm(400), nrow=20))
image(cor(matrix(rnorm(400), nrow=20)), axes=F)
mtext(text=c(paste("country",1:21)), side=2, line=0.3, at=seq(0,1,0.05), las=1, cex=0.8)
mtext(text=c(paste("country",1:21)), side=1, line=0.3, at=seq(0,1,0.05), las=2, cex=0.8)
image.plot(sample, legend.only=T)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…