1

3 つの変数を持つデータセットがあります。1 つの連続独立変数、1 つの連続従属変数、および測定方法を分類する 2 値変数。ggplot を使用すると、カテゴリ別に色分けされた点で散布図を作成できることがわかりました。

g <- ggplot(dataset, aes(independent, dependent))
g + geom_point(aes(color=catagory))

ただし、カテゴリ 0 のポイントから垂直線が上がり、カテゴリ 1 のポイントから垂直線が下がるグラフを作成する方法があるかどうかを知りたいと思います。次のようになります。

-   |        |    |
|   |        |    |
|   |        |    |
|   |        |    |
-   |        |  o |
|   |        |  | |
|   |    o   |  | |
|   | o  |   |  | |
-   | |  |   o  | o
|   | |  |      |
|   o |  |      |
|     |  |      |
+----|-----|-----|-----|-----|

このようなプロットが必要な理由は、1 つのカテゴリが上限 (下向きの線を持つポイント) を表し、もう 1 つのカテゴリが下限 (上向きの線を持つポイント) を表すためです。これらの線があると、これらの境界の間にある領域を簡単に視覚化し、上にプロットされた関数がデータを正確に表すことができるかどうかを確認できます。

-   |        |    |
|   |        |    |
|   |        |    |
|   |        |    |
-   |        |  o |   _____
|   |        |  |_|__/
|   |    o   |_/| |
|   | o  |__/|  | |
-   | | /|   o  | o
|  _|_|/ |      |
| / o |  |      |
|/    |  |      |
+----|-----|-----|-----|-----|

ggplot または R 用の他のグラフ作成ライブラリを使用してこれを行う方法がある場合は、その方法を知りたいです。ただし、それが不可能な場合は、このデータを表す他の方法を聞くことにオープンです。色に基づいてカテゴリを区別するだけでは、カテゴリの上限/下限の性質を強調するのに十分ではありません。

4

1 に答える 1

2

以下はあなたのために働くかもしれません、私は問題をよく理解したと思います.

まず、サンプルデータが提供されていないため、データフレームのランダムデータを生成します。乱数はプロットを醜くしますが、実際のデータで見栄えが良くなることを願っています:

dataset <- data.frame (
    independent = runif(100),
    dependent = runif(100),
    catagory = floor(runif(100)*2))

次に、すべてのケースの「カテゴリ」に基づいて、プロットの上部または下部 (= 値の最小値/最大値) を見つけます。

dataset$end[which(dataset$catagory == 0)] <- max(dataset$dependent)
dataset$end[which(dataset$catagory == 1)] <- min(dataset$dependent)

これで、 geom_segment()でデータをプロットできます。

g <- ggplot(dataset, aes(independent, dependent, min, max))
g + geom_segment(aes(x=independent, y=dependent, xend=independent, yend=end, color=catagory)) 

代替テキスト

+ theme_bw() + opts(legend.position = "none")ランダムデータでは非常に奇妙に見えるため、プロットにパラメーターも追加したことに注意してください。

于 2011-01-19T00:01:14.047 に答える