質問

次のようなデータセットを使用しています。

1  48434  14566
1  56711  6289
1  58826  4174
2  56626  6374
2  58888  4112
2  59549  3451
2  60020  2980
2  60468  2532
3  56586  6414
3  58691  4309
3  59360  3640
3  59941  3059
.
.
.
10  56757  6243
10  58895  4105
10  59565  3435
10  60120  2880
10  60634  2366

上記のデータの最初の列の各値の各列のRのRのプロットが必要です。 X軸は反復数であり、Y軸は最大63000の値です。また、ドットを色の色の線と接続する必要があります。私はRに慣れていないので、ドキュメントを読んでいますが、それは私をもっと混乱させました。どんなボディPLZも役立ちますか。

編集:実際にV3値の折れ線グラフが必要です。 V3列の行数は、x軸上に、y軸のV3値になります。そして、V1で示されるグループにそれぞれ異なるグラフが必要です。 Chaseのソリューションは、軸をシフトしたいことを除いて機能します。V3値はy軸上にある必要があります。 alt text

edit2:@roman、これが私が実行しているコードです。

library(lattice)
d <- read.delim("c:\\proj58\\positions23.txt",sep="")
d <- do.call(rbind, lapply(split(d, d$V1), function(x) {
    x$iterations <- order(x$V3, decreasing=TRUE)
    x
}))
xyplot(V3 ~ iterations | V1, type="l", data=d)

これは私が得るエラーです、

    > 
>  source("C:\\proj58\\plots2.R")
> d
       V1    V2    V3 iterations
1.1     1 48434 14566          1
1.2     1 56711  6289          2
1.3     1 58826  4174          3
1.4     1 59528  3472          4

プロットがありませんか?何が足りないのかはい、わかった。何が悪いのかわからない。ここにあります、

alt text

さらに2つのこと、ボックス上のV1ラベルを1,2などの実際の数値に変更する方法...次に、100個のグループを含むファイルがあり、1ページですべてのグラフを作成しました(明らかに読み取れない)、CAN CAN私はこれらを複数のウィンドウで作りますか?

役に立ちましたか?

解決

さて、最初に、最初の変数の各サブセットについて、行番号を持つ変数を個別に作成する必要があります。データセットを最初の変数で分割し、行番号を持つ新しい変数を作成し、再結合することにより、それを行う1つの方法を次に示します。

また、おそらくV1を要因(カテゴリ変数)にしたいでしょう。

d <- do.call(rbind, lapply(split(d, d$V1), function(x) {
    x$iterations <- 1:nrow(x)
    x
}))
d$V1 <- factor(d$V1)

次に、 lattice 図書館、あなたはようなことをするでしょう

xyplot(V3 ~ iterations | V1, type="l", data=d)

複数のページにプロットを表示するには、ページ上のプロットの数を使用して制限します layout オプション。それを行うには、マルチページ出力をサポートするファイルにプロットを保存する必要があります。たとえば、5列と5列の場合:

trellis.device("pdf", file="myplot.pdf")
p <- xyplot(V3 ~ iterations | V1, type="l", data=d, layout=c(5,5))
plot(p)
dev.off()

また、コードを使用してコードを実行するときにプロットを表示させるには source, 、xyplotコマンドから出力を具体的にプロットする必要があります。

p <- xyplot(...)
plot(p)

コンソールで実行するとき、これは plot (まあ、実際、 print 関数)はデフォルトで呼び出されます。

他のヒント

チェイスが言ったように、あなたが達成しようとしていることをよりよく想像できるように、あなたの質問を明確にしてください。混乱の山に追加するために、ここにあります lattice あなたが望んでいると思うものの球場の解決策。

library(lattice)
fdt <- data.frame(col1 = seq(from = 1, to = 10, each = 10),
        col2 = round(56 * rnorm(100, mean = 30, sd = 5)),
        col3 = round(20 * rnorm(100, mean = 11,)))
xyplot(col3 ~ 1:100 | col1, data = fdt)

alt text

私はあなたがプロットしたいということを正確にフォローしているわけではありませんが、ここにあなたが正しい道を下ろし、適切なプロットコマンドに記入することができます...またはあなたの質問を明確にして、の最終結果を説明することができます。あなたのプロットはより詳細に見えるはずです。

2つのパッケージを利用します。 plyrggplot2. 。我々は使用するだろう plyr データを適切なグループに分割してから使用するには ggplot2 実際のプロット用。を利用します pdf() 各ページに異なるプロットを機能させます。

library(ggplot2)
library(psych)    #For copying in data, not needed beyond that.

df <- read.clipboard(header = F)

pdf("test.pdf")
    d_ply(df, "V1", function(x)     #Split on the first column
        print(qplot(x$V3))          #Your plotting command should go here. This plots histograms.
    )
dev.off()                           #Close the plotting device.

これはAnを生成します n ページPDF WHERE n V1(分割列)のグループの数を表します。 JPEG出力がある場合は、他の出力を作成するためのJPEGまたは他のグラフィックオプションをご覧ください。

編集:ご覧のとおり、人々はいくつかの方法であなたの質問を解釈しました。 @Romanのソリューションがあなたが望むものである場合、ここにほぼ同じGGPLOTコードがあります

qplot(col2, col3, data = fdt, geom = "point") + facet_wrap(~ col1 , nrow = 2)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top