[解決済み] Rで時系列の陰影をつけるためにgeom_rectを使用する
2022-02-03 13:03:11
質問
時系列プロットのある部分に陰影をつけようとしています(不景気な陰影のようなもので、以下のグラフの下にあるものと似ています)。 この記事は、Excelでの不況の影についてです。 ). 少し、不器用かもしれませんが、説明のためのサンプルを作成しました。 まず時系列を作成し、ggplot2でプロットして、geom_rectを使って陰影を付けたいと思います。しかし、私は引数で何か間違っているはずです。
a<-rnorm(300)
a_ts<-ts(a, start=c(1910, 1), frequency=12)
a_time<-time(a_ts)
a_series<-ts.union(big=a_ts, month=a_time)
a_series_df<-as.data.frame(a_series)
ggplot(a_series)+
geom_line(mapping=aes_string(x="month", y="big"))+
geom_rect(
fill="red",alpha=0.5,
mapping=aes_string(x="month", y="big"),
xmin=as.numeric(as.Date(c("1924-01-01"))),
xmax=as.numeric(as.Date(c("1928-12-31"))),
ymin=0,
ymax=2
)
なお、私も試してみましたが、これもうまくいきませんでした。
geom_rect(
fill="red",alpha=0.5,
mapping=aes_string(x="month", y="big"),
aes(
xmin=as.numeric(as.Date(c("1924-01-01"))),
xmax=as.numeric(as.Date(c("1928-12-31"))),
ymin=0,
ymax=2)
)
<イグ
解決方法は?
コードは正常に動作しますが、10進数の日付に変換する必要があるのは xmin と xmax が必要です。 ルブリデート パッケージを使用します。
library("lubridate")
library("ggplot2")
ggplot(a_series_df)+
geom_line(mapping = aes_string(x = "month", y = "big")) +
geom_rect(
fill = "red", alpha = 0.5,
mapping = aes_string(x = "month", y = "big"),
xmin = decimal_date(as.Date(c("1924-01-01"))),
xmax = decimal_date(as.Date(c("1928-12-31"))),
ymin = 0,
ymax = 2
)
線の色を変えないように陰影を先にプロットした、よりクリーンなバージョン。
ggplot() +
geom_rect(data = data.frame(xmin = decimal_date(as.Date(c("1924-01-01"))),
xmax = decimal_date(as.Date(c("1928-12-31"))),
ymin = -Inf,
ymax = Inf),
aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
fill = "grey", alpha = 0.5) +
geom_line(data = a_series_df,aes(month, big), colour = "blue") +
theme_classic()
<イグ
関連
-
[解決済み】基本 - T-検定 -> グループ化因子は正確に2水準でなければならない
-
[解決済み] write.tableしようとすると、未実装の型リストが表示される。
-
[解決済み】「'dimnames' [1]の長さが配列の範囲と等しくない」とはどういう意味ですか?
-
[解決済み】Rの整数オーバーフローとは何ですか、そしてどのように起こるのですか?
-
[解決済み】Rでのデータ操作。'X'はアトミックでなければならない
-
[解決済み】 eval(expr, envir, enclos) でのエラー : オブジェクトが見つかりません。
-
[解決済み] JavaScriptでUnixのタイムスタンプを時刻に変換する
-
[解決済み] Androidで現在の時刻と日付を取得する方法
-
[解決済み] JavaでYYYY-MM-DD HH:MI:Sec.Millisecond フォーマットで現在の時刻を取得する方法は?
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】数学関数への非数値引数
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み】library(ggplot2)でエラー:'ggplot2'というパッケージは存在しません。
-
[解決済み] テスト
-
[解決済み】Rでの関数の最適化(L-BFGS-Bでは'fn'に有限の値が必要)。
-
[解決済み】Rで立方根と対数変換をする
-
[解決済み】x[[i]]でのエラー:レベル2で再帰的インデックス作成に失敗した
-
[解決済み】 lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) のエラー : 'y' の NA/NaN/Inf, あらゆる方法を試したが解決しなかった。
-
[解決済み] [Solved] read.csv warning 'EOF within quoted string' prevents complete reading of file.
-
[解決済み】R4DSのエラー比較(1)は、アトミック型とリスト型でのみ可能です