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() widthとはheightインチなので、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 に答える