0

我正在尝试在使用 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()

原始代码在这里

4

1 回答 1

0

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

糟糕的情节

它们很小的原因是情节本身很大。因为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()

好情节

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

于 2013-10-10T14:18:15.347 回答