通常は ggplot2 を使用しますが、この場合は通常のimage()
関数を使用して大規模なデータ セットのヒートマップをプロットしています。すべてのラベルに赤のラベルを付けることができますが、生成した色定義のベクトルに基づいて、さまざまな色のテキストで y 軸にラベルを付けたいと考えています。
grid = structure(c(1:12),.Dim = c(4,3))
labs = c("A","B","C")
image(1:4,1:3,grid,axes=FALSE, xlab="", ylab = "")
#This works but isn't the colors I want
axis(2,at=1:length(labs),labels=labs,las=2, adj=1,cex.axis=0.6,col.axis="red")
これにより、次の画像が生成されます。
ラベル A と C を黒、B を赤にしたいと思います。これは私が試したものですが、「間違った長さ」エラーが発生します...
axiscolors = c("black","red","black")
axis(2,at=1:length(labs),labels=labs,las=2, adj=1, cex.axis=0.6, col.axis=axiscolors)
これは、いくつかの「実際の」データで私が求めている効果です...
編集:
バックアップとして、これが ggplot2 で可能であれば、コードをリファクタリングすることをいとわないかもしれません。これを使用する他のアプリケーションもいくつかあります。
古いラベルの上に赤いシンボルのレイヤーをプロットする方法を見つけましたが、可能であれば、カラーベクトルを使用したネイティブメソッドを好むでしょう...
sublabs = c("B")
axis(2,at=match(sublabs,labs),labels=sublabs,las=2, adj=1, cex.axis=0.6, col.axis="red")
別の方法はtext()
、プロット スペースの外にラベルを配置できる場合に使用することです...
text(c(1,1,1),c(1,2,3),labs,col=c("black","red","black"))
更新:以下で動作するソリューションについては、以下を参照してくださいggplot2
...