igraph网络图与颜色渐变栏

时间:2013-10-10 02:27:28

标签: r igraph

我正在尝试在我使用igraph绘制的网络图下方添加颜色渐变条。由于某种原因,无法显示颜色渐变条的轴标签。但是,当我在没有网络图的情况下单独绘制颜色渐变条时,轴标签会完美显示。有什么建议吗?

colorstrip <- function(colors) {
  count <- length(colors)
  m <- matrix(1:count, count, 1)
  par(mai=c(5, 50, 30, 50), cex.axis=2, ann=T, tck=-1)
  image(m, col=colors, ylab="", axes=FALSE)
  axis(side=3, at=seq(from=-0.165, to=1.22, by=0.332),
       labels=letters[1:5])
}

library(igraph)
g <- graph.ring(10)

pdf("test_igraph.pdf", width=200, height=200)
layout(matrix(c(1,2), nrow=2), heights=c(2,0.5))
plot(g)
colorstrip(c("red", "mediumseagreen", "yellow", "blue"))
dev.off()

Original code was here

1 个答案:

答案 0 :(得分:0)

标签在那里,但它们非常小。放大PDF查看器,然后您将看到它们。

bad plot

它们很小的原因是情节本身很大。对于pdf() widthheight以英寸为单位,因此您的200中有200个。解决方案是使图形更小(或字母更大,但我想你不想要有一个巨大的数字):

colorstrip <- function(colors) {
  count <- length(colors)
  m <- matrix(1:count, count, 1)
  par(mai=c(0.2, 2, 1, 2), cex.axis=2, ann=T, tck=-1)
  image(m, col=colors, ylab="", axes=FALSE)
  axis(side=3, at=seq(from=-0.165, to=1.22, by=0.332),
       labels=letters[1:5])
}

library(igraph)
g <- graph.ring(10)

pdf("test_igraph.pdf", width=7, height=7)
layout(matrix(c(1,2), nrow=2), heights=c(2,0.5))
plot(g)
colorstrip(c("red", "mediumseagreen", "yellow", "blue"))
dev.off()

good plot

所以这与igraph无关。实际上,即使您只绘制彩条,也不会看到标签。