ggplot2
を使用して時系列データをプロットすることができます。しかし、季節情報と時系列データを強調したいと思います。ここで時系列データ用の複数のx軸ラベル
は私のコードです:
library(zoo)
library(ggplot2)
a <- read.table(text = "
Season Quarter Sales
Season1 2014Q1 20
Season1 2014Q2 40
Season1 2014Q3 60
Season1 2014Q4 80
Season2 2015Q1 30
Season2 2015Q2 40
Season2 2015Q3 80
Season3 2015Q4 90
Season3 2016Q1 100
Season3 2016Q2 120
Season3 2016Q3 140
", header = TRUE, sep = "")
a$Quarter<-as.yearqtr(a$Quarter)
a$Quarter<-as.Date(a$Quarter)
ggplot(data=a,aes(x=Quarter, y=Sales)) +
geom_line()
これは私が時系列データを描画することが可能だということに適しています。今
、私はこれを行う1つの方法はcolor
またはlinetype
を使用するのだろうなど、シーズン1を構成するものをラベルにしたい2。しかし、時系列の連続性が損なわれるため、これは機能していないようです。一方
# doesn't work...
ggplot(data=a,aes(x=Quarter, y=Sales)) +
geom_line(aes(linetype=Season))
、私はExcelがわずか2回のクリックでこのグラフをプロットする方法が好きです。これは、日付とともにx軸の季節情報を示す美しいグラフを作成します。本質的に3層のx軸を作成します。
私はこのトピックに関する二つの質問があります。
質問1:ggplot
を使用して、どのように私は(休憩なしつまり)連続グラフを作成するためにggplot
にlinetype
(またはcolor
)を使用することができますか?私はlinetype
よりもcolor
を好むでしょう。 例として、コメントに答えるために、ここでは別のデータセットを使って作成したグラフを示します。
df <- data.frame(x = 1:3, y = 1:3, z = c(1,3,5))
ggplot(df, aes(x, y, color = factor(z))) +
geom_line(aes(group = 1))
私は、時系列データのための行動の上に複製することができません。ここ は、私は上記のコードから得たグラフです:
質問2:ggplot
を使用して、どのように私はマルチレベルx軸を作成することができます(Excelが私のためにしたものと同様の)季節を示しました情報の日付? {私が作成したExcelグラフを見てください}このオプションを使って凡例を作成したくありません。また、x-値とy-値を調整して再調整することによって、これらのマルチレベルラベルを配置する方法をannotate
(またはおそらくgeom_text
)の方法で適用することで、ハッキング方法を使用しないと分かります。これは、プログラミング言語を使用してグラフを描画するという目的を破るためであり、データが変更されても機能しません。
ご不明な点がありましたら、お知らせください。私はあなたの考えを感謝します。私はggplot2
と絶対初心者です。 ExcelとSTATAからggplot
に移行してからわずか5日間です。私の質問があまりにも基本的なものであれば、謝罪します。
私はこのトピックをSOで研究しましたが、十分近いものは見つかりませんでした。たとえば、this threadはダニを変更することについて話しますが、私が探しているものではありません。
あなたの意図は明らかですが、あなたの 'linetype'例えば特に、' ggplot2'は正しいことをやっている - 例えば、どのような 'linetype'はあなたでしょうシーズン1と2をつなぐセグメントがあると思いますか? – tchakravarty
@ tchakravartyご意見ありがとうございます。さて、私は色を使って連続性を示すことができれば、助けになると思っています。私は上記の説明を追加します。 – watchtower
同じロジックがカラーにも適用されます。私はあなたの最善の策は、Excelがあなたのために作成している階層軸を試して複製することだと思います。 SO [here](http://stackoverflow.com/q/18165863/1414455)と[here](http://stackoverflow.com/q/5704725/1414455)のいくつかの以前のソリューションがあります。 – tchakravarty