2016-07-29 12 views
0

私は特別な方法でプロットしたいたくさんのデータがあります。しかし、Rでこれを行う方法がわかりません。 入力は複数の列を含むcsvファイルです。私がプロットしたい列はAとDです。 AにはテキストとD番号が含まれています。 A列のuseddテキストは何回か存在します。y軸上のオブジェクトとx軸上の番号を表示するプロットを作成する方法

I:

enter image description here

私はこれをプロットする方法を、実際には考えている。しかし、インクルードは、私は次のことを実証しなければならないプロットを取得したいエンドで enter image description here

問題ではありません試みました:plot(data1$COLUMND,data1$COLUMNA,xlab = "COLUMND", ylab = "COLUMNA");結果は、列Aのテキストが数字に置き換えられました。この場合、軸は0-3のラベルを取得します。 ラベルコマンドでlableを変更しようとしました。しかし、これは、寓話が繁殖しているという問題につながります。しかし、列のデータはそうではありません(上の私の例では、私の実際のデータではありません)。したがって、Rは0をカラムAの対応するテキストに置き換えます。 この場合、私はQuick-R guide に示されたメソッドを使用しましたが、それらは必要に応じて動作せず、エントリをnullに置き換えました。

答えて

0

2つの手順を実行する必要があります。

1)ベクターのリストを作成します。すべてのベクトルは列Aの一意の要素の後の名前であり、対応する値は列Dになります。

2)このリストにはstripchart()関数を使用します。

私のコードのアプローチ:

## your data 
data <- data.frame(A = c("AAA", "AAB", "AAC", "AAA", "AAE", "AAC"), 
        B = rep(12.3), 
        C = rep(20160729), 
        D = c(100,80,10,0,5,20)) 

## empty list to fill in the following loop 
list <- list() 
## get the values in column D for every unique value in column A 
## an add it to the list 
for (i in unique(data$A)) list[[i]] <- data$D[data$A == i] 

## plot the list 
stripchart(list, 
      xlab = "Column D", ylab = "Column A", 
      pch = 16, col = "red") 

結果:

Stripchart

0

あなたがaxis機能を使用してみましたか?

まず、「AAD」は、提供したサンプルデータに含まれていないことに注意してください。私たちは、列Aの値についてRを伝える必要があり、我々はそれらを注文することにしたい方法:

data1 <- data.frame(A=c('AAA', 'AAB', 'AAC', 'AAA', 'AAE', 'AAC'), 
    D=c(100, 80, 10, 0, 5, 20)) 
data1$A <- factor(data1$A, levels=paste0('AA',LETTERS[1:5])) 

今、私たちは、プロットすることができます。 Rには今のところY軸を省略するように指示します(yaxt引数を使用)。後で手動で追加します。

par(mar=c(6,6,4,2)) # Set margins for plot 
plot(data1$D, data1$A, xlab = "Column D", ylab = "", yaxt="n", las=1) 

最後に、因子レベル(すなわち数字)の代わりに実際の値を使用してY軸ラベルを追加します。

axis(2, at=1:length(levels(data1$A)), labels=levels(data1$A), las=2) 
mtext("Column A", side=2, line=1, las=2, at=3.2) 

Output