2

2001 年から 2009 年までの 9 つの河川のデータがあります。9 つのファセットのグラフを作成し、各ファセットに毎年 9 本の線を付けたいと考えています。X 軸は 1 月から 12 月までです。これまでのところ、私はこれに行き着きました:

私が使用したコードは次のとおりです。

testseries<- read.csv("testseries.csv")
meltedtestseries <- melt(testseries,id=c("date"))
head(meltedtestseries)
ggplot(meltedtestseries,aes(x=date,y=value))+geom_line()+facet_wrap(~variable,scales="free")+xlab("Date")+ylab("Discharge(cms)")

得られたグラフは次のとおりです。 ここに画像の説明を入力

ここで、X 軸を月単位で変更し、各面の年ごとに 9 つの曲線をプロットします。color=year などを変更する必要があることはわかっています。しかし、うまくいきませんでした。どんな助けでも大歓迎です。ありがとう。

データセットはhttps://www.dropbox.com/s/ykhu8vc9211xtzu/testseries.csvにあります。

ジババ

編集:追加情報

私もこのコードを試しました:

ggplot(meltedtestseries,aes(x=as.Date(date),y=value,color=date))+geom_line()+facet_wrap(~variable,scales="free")+xlab("Date")+ylab("Discharge(cms)")
4

1 に答える 1

4

あなたが見逃しているのは、によるグループ化だと思いますyear。あなたが であると仮定するdata.framedf

require(ggplot2)
require(reshape2)
df1 <- read.csv("~/Downloads/testseries.csv")
df <- melt(df1,id=c("date"))
df$date <- as.Date(df$date)

# get `year` first
# df$year <- as.POSIXlt(df$date)$year + 1900 (old code)
# df$year <- format(df$date,'%Y') # following @agstudy's comment.
p <- ggplot(data = df, aes(x=date, y=value))
# group/colour by year
p <- p + geom_line(aes(colour=factor(year))) 
p <- p + scale_colour_brewer(palette="Set3") 
p <- p + facet_wrap(~ variable, scales="free", ncol=3)
p <- p + xlab("Date") + ylab("Discharge(cms)")
p

これは与える:

ggplot2_facet

編集2:これがあなたが探しているものでない場合はfacet_grid、次のように2つの変数でファセットする必要があるかもしれません:

df$year <- factor(as.POSIXlt(df$date)$year + 1900)
p <- ggplot(data = df, aes(x=date, y=value))
p <- p + geom_line() 
p <- p + facet_grid(variable ~ year)
p <- p + xlab("Date") + ylab("Discharge(cms)")
p

密グラフを与える:

ggplot2_facet_grid_dense

于 2013-02-09T23:11:28.040 に答える