9

私はかなり周りを見てきましたが、これには困惑しています。散布図に関連付けられていない線をプロットする方法が見つかりません。問題を明確にするための私のデータとコードの一部を次に示します。次の形式のデータがあります

> head(allData)
  AnnounceDate MarketProbability DealStatus binary BrierScore
1   2000-04-10         0.3333333   Complete      1  0.2340565
2   2000-06-14         0.2142857   Complete      1  0.3618200
3   2000-06-26         0.6846154   Complete      1  0.3690167
4   2000-06-16         0.1875000   Complete      1  0.4364041
5   2000-10-05         0.9555556   Complete      1  0.3078432
6   2000-10-19         0.8500000   Complete      1  0.2670799

MarketProbabilitiesと の散布図を作成し、 が色であるか、色を使用しているかAnnounceDateを識別したいと思います。DealStatusCompletedTerminated

(ggplot(data=allData, aes(x=AnnounceDate, y=MarketProbability, colour=DealStatus))
 + geom_point() + scale_colour_hue(h = c(180,0)))

ここに画像の説明を入力

また、ローリング Brier スコアをオーバーレイしたいと思います。試してみました

(ggplot(data=allData, aes(x=AnnounceDate, y=MarketProbability, colour=DealStatus))
 + geom_point() + scale_colour_hue(h=c(180,0))
 + geom_line(aes(x=AnnounceDate, y=BrierScore)))

ここに画像の説明を入力

なぜ2つの色付きの線がプロットされているのか混乱していますか? 前にプロットされたデータと線を切り離すにはどうすればよいですか?

4

2 に答える 2

7

@MattBagg が指摘したように、この問題はaes()for color をメインggplot()コールからコールに移動することで修正されgeom_point()ます。

library(ggplot2)

allData = read.table(header=TRUE,
colClasses=c("Date", "numeric", "character", "numeric", "numeric"),
text="AnnounceDate MarketProbability DealStatus binary BrierScore
2000-04-10         0.3333333   Complete      1  0.2340565
2000-06-14         0.2142857   Complete      1  0.3618200
2000-06-26         0.6846154   Complete      1  0.3690167
2000-06-16         0.1875000   Complete      1  0.4364041
2000-10-05         0.9555556   Complete      1  0.3078432
2000-10-19         0.8500000   Complete      1  0.2670799")

p1 = ggplot(data=allData, aes(x=AnnounceDate)) +
     geom_point(aes(y=MarketProbability, colour=DealStatus)) + 
     scale_colour_hue(h = c(180,0)) + 
     geom_line(aes(y=BrierScore))

ggsave(filename="plot_1.png", plot=p1, height=2.5, width=5)

ここに画像の説明を入力

于 2012-12-01T04:10:03.820 に答える
5

ggplot() の aes() は、後続の geom に継承されます。color=DealStatus を割り当てました。これは geom_line() によって継承され、2 つの色を作成するには 2 つの線を作成する必要があります。私は自分の携帯電話を使用しているため、これをテストすることはできませんが、色の割り当てをメインの ggplot から geom_point() に移動してみてください。

ggplot(data = allData, aes(x=AnnounceDate)) +
     geom_point(aes(colour=DealStatus, y=MarketProbability)) + 
     scale_colour_hue(h = c(180,0)) +
     geom_line(aes(y=BrierScore, group=1))

グループ引数として定数を追加して、すべてのポイントを接続するように指示します。そうしないと、ggplot が間違った推測をすることがあります。

于 2012-12-01T03:49:55.930 に答える