0

これは期待どおりに機能します。

p = qplot(year, temp, data=CETW, geom=c("point", "smooth"))

温度は、データ フレーム CETW からデータを取得して、年に対してプロットされます。シリーズは平滑化されます。純粋に審美的な理由から、暖かい温度、通常の温度、寒い温度に色を付けたかったのです。値が「ウォーム」、「ノーマル」、および「コールド」である CETW$classify 属性があります。以下は、予想される色でデータを示しています。

p = qplot(year, temp, data=CETW, colour=classify, geom=c("point", "smooth"))

しかし今、「滑らかな」ものは巧妙であると判断し、3 つの温度のそれぞれに個別の平滑化曲線を適用しました。データポイントが少なすぎるため、これはばかげています。では、最初のケースで行ったように、一連の温度全体をスムーズにするようにスムーズに指示するにはどうすればよいでしょうか? method=loess で stat_smooth を使用する回答があれば幸いです。

要求に応じて、dput を使用して CETW のデータを追加しています。

structure(list(year = 1959:2011, temp = c(4.5, 5.08, 5.73, 3.43, 
1.25, 3.7, 3.8, 4.95, 5.6, 4.2, 3.2, 3.4, 4.55, 5.33, 5.2, 5.5, 
6.03, 5.13, 4.23, 4.75, 2.35, 4.63, 5.35, 3.45, 4.8, 4.35, 3.2, 
3.4, 3.68, 5.55, 6.75, 6.75, 4.25, 5.33, 5.2, 5.43, 5.83, 3.4, 
5.13, 6.55, 5.93, 5.95, 4.65, 5.93, 5.4, 5.48, 5.73, 4.33, 6.63, 
5.75, 4.4, 3.35, 4.03), classify = c("normal", "normal", "normal", 
"normal", "cold", "normal", "normal", "normal", "normal", "normal", 
"cold", "cold", "normal", "normal", "normal", "normal", "warm", 
"normal", "normal", "normal", "cold", "normal", "normal", "normal", 
"normal", "normal", "cold", "cold", "normal", "normal", "warm", 
"warm", "normal", "normal", "normal", "normal", "normal", "cold", 
"normal", "warm", "normal", "normal", "normal", "normal", "normal", 
"normal", "normal", "normal", "warm", "normal", "normal", "cold", 
"normal")), .Names = c("year", "temp", "classify"), row.names = c(NA, 
-53L), class = "data.frame")
4

2 に答える 2

2

ggplot を使用し、オプションをローカルで指定する必要があります。これがどのように機能するかです

p = ggplot(data = CETW, aes(x = year, y = temp)) +
    geom_point(aes(colour = classify)) +
    geom_smooth()

ここでは、ポイントレイヤーでのみ色の美学を指定するため、 geom_smooth はそれを考慮せず、単一の線のみを提供します。

これがうまくいくかどうか教えてください

于 2011-04-05T17:35:21.833 に答える
0

@Ramnath の提案を実現する別の方法は、 のgroupパラメーターを使用することですaes()

ggplot(data=CETW, mapping=aes(x=year, y=temp, colour=classify)) +
+ geom_point() + geom_smooth(aes(group=1))
于 2013-12-13T14:32:05.847 に答える