2つの同期変数の棒グラフを作成したい。起源とは、2つの特性が時間的に測定されるサイトへの個人の訪問である。この例では、個人 "a"がサイトを2回訪問します。Rプロットのサブプロットでは色の凡例が表示されない
バーは測定値を表示し、時間順に並び、タグに応じて色付けします(変数ではありません)。
まずデータを作成しましょう。
# R version 3.4.0
set.seed(123)
df <- data.frame(id=factor(rep(c("a", "b", "c", "a"), each=10)),
time=as.POSIXct(1:40, origin="2017-01-01"),
var1=abs(rnorm(40)),
var2=abs(rnorm(40)))
# > head(df)
# id time var1 var2
# 1 a 2017-01-01 01:00:01 0.005764186 0.1176466
# 2 a 2017-01-01 01:00:02 0.385280401 0.9474746
# 3 a 2017-01-01 01:00:03 0.370660032 0.4905574
# 4 a 2017-01-01 01:00:04 0.644376549 0.2560922
# 5 a 2017-01-01 01:00:05 0.220486562 1.8438620
# 6 a 2017-01-01 01:00:06 0.331781964 0.6519499
次に、各別個の変数の二つのグラフを作る同じ凡例グループに割り当て、第2のプロットの凡例を隠します。
library(plotly) # version 4.7.0
p1 <- plot_ly(df, x=~time, y=~var1, color=~id, type="bar",
legendgroup=~id)
p2 <- plot_ly(df, x=~time, y=~var2, color=~id, type="bar",
legendgroup=~id, showlegend=FALSE)
次に、両方のプロットを共有X軸を持つ1つのプロットに追加します。
subplot(p1, p2, shareX=TRUE, nrows=2)
私はSOの質問でHTMLページを追加するかどうかはわかりませんが、上記のコードは、再現性の例を提供する必要があります。参照用に以下に追加されたPNG。
右、よさそうですか?しかし何らかの理由で、伝説のセレクタが正しく動作しません。 「a」の選択を解除するとプロット1(予期しない動作)にのみ影響し、「c」を選択解除すると両方のプロット(期待値)に影響します。
ここで何が起こっているの?バグの可能性がありますか、何か不足していますか?
私はggplotly
を知っていて、ファセットを使って同様のプロットを得ることができます。問題は、ページ幅でスケーリングするggplotly HTMLを出力することができないことです(少なくとも私が知る限り)。私は結果として得られる画像を、ブラウザウィンドウで拡大縮小するHTMLにしたい。これはデフォルトで陰謀的に行われる。
感謝に気づきました。実際にIDで発注すれば問題は解決します。奇妙な! –