2013-01-18 3 views
5

私は失われた道のりであるため、本当に助けが必要です。ggplot2 +スケールを使った日付構造X

私は、1年以上にわたっていくつかのチームのパフォーマンスを示す折れ線グラフを作成しようとしています。私は年を4分の1に分けました:2012年1月1日、4/1/12。 8/1/12。 12/1/12と私は第四四半期12/1/12は不可解秒のスポットに移動し、グラフを生成するggplot2を使用しようとするとR.

 Month    Team Position 
1 1/1/12  South Africa  56 
2 1/1/12    Angola  85 
3 1/1/12   Morocco  61 
4 1/1/12 Cape Verde Islands  58 
5 4/1/12  South Africa  71 
6 4/1/12    Angola  78 
7 4/1/12   Morocco  62 
8 4/1/12 Cape Verde Islands  76 
9 8/1/12  South Africa  67 
10 8/1/12    Angola  85 
11 8/1/12   Morocco  68 
12 8/1/12 Cape Verde Islands  78 
13 12/1/12  South Africa  87 
14 12/1/12    Angola  84 
15 12/1/12   Morocco  72 
16 12/1/12 Cape Verde Islands  69 

をCSVデータフレームをロードしました。

ggplot(groupA, aes(x=Month, y=Position, colour=Team, group=Team)) + geom_line() 

私は、日付をフォーマットするscale_xを使用しようとするために、変数GAにこのプロットを置く:

GA + scale_x_date(labels = date_format("%m/%d")) 

をしかし、私はこのエラーを得続ける:

Error in structure(list(call = match.call(), aesthetics = aesthetics, : 

ができました関数を見つけられません "date_format"

このコードを実行すると:

GA + scale_x_date() 

私はこのエラーを取得する:

Error: Invalid input: date_trans works with objects of class Date only 

私はR 2.15.2

を実行しているのMac OS Xを使用しています助けてください。

+0

申し訳ありません。それ、どうやったら出来るの? – Siya

+0

@シニアと礼儀正しい行動として、あなたが解決策を受け入れるときに特別にアップヴォートすることができます。これは人々に次回にあなたを助けることを奨励します... – agstudy

答えて

6

これはdf$Monthdata.framedfであると仮定します)です。これはfactorの順にそのレベルがあります。

> levels(df$Month) 
# [1] "1/1/12" "12/1/12" "4/1/12" "8/1/12" 

解決策は、要因のレベルを並べ替えることです。

df$Month <- factor(df$Month, levels=df$Month[!duplicated(df$Month)]) 
> levels(df$Month) 
# [1] "1/1/12" "4/1/12" "8/1/12" "12/1/12" 

ggplot2_factor_levels

編集:次に、あなたのコードが動作するはずですstrptime

# You could convert Month first: 
df$Month <- strptime(df$Month, '%m/%d/%y') 

を使用して代替ソリューション。以下のプロットを確認してください:

ggplot2_strptime_solution

+0

ありがとうございました。 – Siya

+0

@Arunどのように彼のデータを読むためにsucced ...私はいくつかの問題を抱えていた... read.table(text = '..')を使用して – agstudy

関連する問題