3

親愛なるホモ・サピエンスの皆さん、

以下のコードを使用してこのグラフを作成しました(なしを除く+ scale_x_date)。

これを行うために使用したデータセットはHEREにあります。次のようになります。

GFC1CARi<-read.csv("demo.csv")
head(GFC1CARi)
  X         XX   variable       value    Var
1 1 2008-07-17 Financials 0.001772705 Financ
2 2 2008-07-18 Financials 0.017306086 Financ
3 3 2008-07-21 Financials 0.010745136 Financ
4 4 2008-07-22 Financials 0.021152194 Financ
5 5 2008-07-23 Financials 0.031195805 Financ
6 6 2008-07-24 Financials 0.026534444 Financ

写真のように、x 軸には「8 月」、「9 月」などの日付が表示されます。しかし、「08/2007」「09/2007」のようなものにしたい……。そのため、これを行う私の試みを以下に示しますが、機能しません。

p <- ggplot(data=GFC1CARi,aes(x=XX, y=value, colour=Var)) +
        geom_line() + 
        opts(legend.position = "none") + 
        xlab(" ") + 
        ylab("Cumulative abnormal return") + 
        scale_x_date(labels = date_format("%m/%Y"),breaks = "1 month")

p <- direct.label(p+xlim(min(GFC1CARi$XX), max(GFC1CARi$XX)+20))

breaks = ??andの他の多くのバリエーションを試しましたdate_formatが、%m/%Y を表示できません。常に「8 月」..「9 月」..「10 月」になります。Joran の要求に応じて:

> str(GFC1CARi)
'data.frame':   1730 obs. of  5 variables:
 $ X       : int  1 2 3 4 5 6 7 8 9 10 ...
 $ XX      : POSIXct, format: "2008-07-17" "2008-07-18" "2008-07-21" "2008-07-22" ...
 $ variable: Factor w/ 10 levels "Financials","Industrials",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ value   : num  0.00177 0.01731 0.01075 0.02115 0.0312 ...
 $ Var     : chr  "Financ" "Financ" "Financ" "Financ" ...

POSIXct 日付形式をas.Date次のように変更しようとしました 。

GFC1CARi[,2]<-as.Date(GFC1CARi[,2])
str(GFC1CARi)
'data.frame':   1730 obs. of  5 variables:
 $ X       : int  1 2 3 4 5 6 7 8 9 10 ...
 $ XX      : Date, format: "2008-07-16" "2008-07-17" ...
 $ variable: Factor w/ 10 levels "Financials","Industrials",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ value   : num  0.000983 0.015822 0.008339 0.017987 0.027186 ...
 $ Var     : chr  "Financ" "Financ" "Financ" "Financ" ...

これは状況を修正しません。代わりに、X 軸は { "Oct", "Jan", "Apr" } になり、それだけです。

みんな、ありがとう。

4

1 に答える 1

2

申し訳ありませんが、私は非常に密集していました。取得したエラーは、 を使用しようとしたではなく、を使用する前に発生していると思いました。directlabels

への呼び出しxlimは、単に x 軸の書式設定を踏んでいます。コマンドscale_x_date内に呼び出しを入れるだけでうまくいきます:direct.labels

p <- direct.label(p + 
                  xlim(min(dat$XX), max(dat$XX)+20) + 
                  scale_x_date(labels = date_format("%m/%Y"),breaks = "1 month"))

ここに画像の説明を入力

于 2012-07-07T18:48:53.863 に答える