10

気象データ (気温、風、湿度の 1 時間ごとの値) から、風速と風向の時系列をプロットすることができました。ここで、時系列プロットに風のベクトルを追加したいと思います。ここで、私が望む出力を見ることができます (実際のプロットの上に描かれた矢印)。

ここに画像の説明を入力

私はggplot2を使用しており、stackoverflow、ggplot2パッケージのドキュメント(続きます)を調べていますが、解決策は見つかりませんでした。どこを見ればよいかというアイデアや指示が出発点になります。

前もって感謝します

質問の編集 @slowlearner のコメントで示唆されているように、ここにコードとデータを追加して、再現可能な例を作成します。geom_segment でうまくいくようです。geom_segment で円を計算することはできましたが、x 軸が時間軸であるため、xend を見つける方法がわかりません。風速と風向のデータがあるので、geom_segment の x、y 風成分を計算できますが、x を時間形式に変換する必要があります。

プロット(温度)とデータに使用されるコードは次のとおりです

for (i in 1:2 ) {

rams=subset(data,data$stat_id %in% i)
tore=subset(torre,torre$stat_id %in% i)

# Gràfica en ggplot

# Gráfica de evolución temporal de las estaciones de la zona

gtitol=places$nom[places$stat_id == i]

myplot=ggplot(data=rams,aes(x=datetime, y=tempc, colour="RAMS")) +
  geom_line()  +  ylab("Temperatura (ºC)") + xlab(" ") + 
  ggtitle(gtitol) + theme(legend.title=element_blank()) + theme(legend.position="bottom") +
  scale_y_continuous(limits = c(0,40)) +
  geom_line(data=tore,aes(x=datetime,y=temp,colour = "Torre")) 
#scale_y_continuous(breaks = round(seq(min(data$tempc), max(data$tempc), by = 2),0))


ggsave(myplot,filename=paste("RAMS-",i,".png",sep=""),width=7.78,height=5.79)

}

私が試したgeom_segmentドキュメントに従って

p=ggplot(tore, aes(x =datetime, y = 5))
p + geom_segment(aes(xend = datetime, yend = 5 + v), arrow = arrow(length = unit(0.1,"cm")))

このような図を取得します。x座標がdatetimeであることがわかります.windowコンポーネントを変換してxendを取得するにはどうすればよいですか? 今では xend は datetime に等しいですが、「datetime + xwindcomp」のようなものが欲しいです

ここに画像の説明を入力

ご協力いただきありがとうございます

4

2 に答える 2

4

前文として、今後の質問にはすべてのコードと関連データを含めるようにしてください。上記の質問を見ると、 などのいくつかのオブジェクトtorreが定義されていないことがわかります。つまり、R セットアップにコピー アンド ペーストすることはできません。また、リンク先のデータは、限定されたサブセットであるため、問題のコードでは使用できませんでした。私のアドバイス: (a) 使用しているデータのように見える偽のデータを作成する (b) コードを最小限に抑える (c)投稿する前に、新しい R セッションでコードとデータをテストして再確認してください。

私が言うことができる限り、あなたは以下のようなものが欲しいです。もちろん、自分の目的に合わせて調整する必要がありますが、問題に取り組む方法についていくつかのアイデアが得られるはずです。線の色、太さ、凡例、タイトルなどの外観上のプロパティのほとんどがプロットから省略されていることに注意してください。これらは、この質問の目的には重要ではありません。編集 別のアプローチは、風データに同じデータ フレームを使用してから、ファセット変数を使用して別のリンクされたプロットで速度を表示することです。

require(ggplot2)
require(scales)
require(gridExtra)
require(lubridate)
set.seed(1234)

# create fake data for temperature
mydf <- data.frame(datetime = ISOdatetime(2013,08,04,0,0,0) +
                   seq(0:50)*10*60,
                   temp = runif(51, 15, 25))

# take a subset of temperature data,
# basically sampling every 60 minutes
wind <- mydf[minute(mydf$datetime) == 0, ]
# then create fake wind velocity data
wind$velocity <- runif(nrow(wind), -5, 20)
# define an end point for geom_segment
wind$x.end <- wind$datetime + minutes(60)

ggplot(data = mydf, aes(x = datetime, y = temp, group = 1)) +
    geom_line() +
    geom_segment(data = wind,
                 size = 3,
                 aes(x = datetime,
                     xend = x.end,
                     y = 10,
                     yend = velocity),
                 arrow = arrow(length = unit(0.5, "cm"))) +
    theme()

これにより、次のプロットが生成されます。 スクリーンショット

于 2013-08-09T09:25:53.727 に答える