7

barplot() 関数を使用して、マトリックスから積み上げグラフを作成しました。

マトリックスは次のようになります。

1 0.989013 0.010987
2 0.999990 0.000010
3 0.999990 0.000010
4 0.999990 0.000010

積み上げグラフを作成するコードは次のようになります。

barplot(t(as.matrix(x)), col=c("cyan", "black"))

問題は、特定のポイントで目盛りとラベルを使用してカスタム x 軸を作成したいことです。以下を使用して x 軸を作成しました。

axis(1, at=keyindexes, labels=unique(t$V4), tck=-0.01)

ここで、keyindexes はティックが必要なバー番号のベクトルであり、unique(t$V4) は各ティックの一意の名前を含むベクトルです。

問題は、x 軸がグラフ領域と一致せず、大幅に短いことです。x軸を長くする方法について誰かアドバイスできますか?

4

2 に答える 2

19

実際、軸ラベルの問題は、バーが整数を中心にしていないことです。たとえば、10 行のデータを作成し、 でプロットしますbarplot()axis()次に、x 軸に 1 から 10 までの数字を追加します。

set.seed(1)
x<-data.frame(v1=rnorm(10),v2=rnorm(10))
barplot(t(as.matrix(x)), col=c("cyan", "black"))
axis(1,at=1:10)

ここに画像の説明を入力

軸のテキストが正しい位置にありません。

この問題を解決するには、barplot()をオブジェクトとして保存し、このオブジェクトをat=軸の値として使用する必要があります。

m<-barplot(t(as.matrix(x)), col=c("cyan", "black"))
m
 [1]  0.7  1.9  3.1  4.3  5.5  6.7  7.9  9.1 10.3 11.5
axis(1, at=m,labels=1:10)

ここに画像の説明を入力

編集 - いくつかの目盛りのみをプロット

軸の目盛りテキストの一部のみをプ​​ロットする必要がある場合は、必要な値をサブセットm化し、同じ長さを提供できますlabels=。この例では、1.、5.、および 10. のバーのみに注釈が付けられています。

m<-barplot(t(as.matrix(x)), col=c("cyan", "black"))
lab<-c("A","B","C")
axis(1, at=m[c(1,5,10)],labels=lab)

ここに画像の説明を入力

于 2013-03-11T06:02:22.213 に答える
0

updateusrTeachingDemos パッケージの関数を見てください。この関数は、プロットのユーザー座標を変更または「更新」します。この例では、棒グラフの x 軸の座標を変更して、追加のプロットの直感的な値に一致させる方法を示しています。

于 2013-03-12T01:28:23.100 に答える