1
ggplotのカラースケールグラジェントを適用する方法について質問があります。私は、応答変数が正と負の両方の数値を含む連続変数であり、独立変数が多数の独立したサイトであるデータセットを持っています。私は、すべてのデータをバックグラウンドでプロットし、データの負の範囲をカバーするレスポンスデータにカラースケール勾配を適用するような方法でデータをプロットしようとしています。これは、私が今までに私の実際のデータセットの構造を模倣したサンプルのデータセットを持っていることです。データの一部にggplotカラースケールグラデーションを適用する
tr_sim <- data.frame(site_id = seq(1,100,1), estimated_impact =
rnorm(100,18,200), impact_group = rep(c(1,2),each = 50))
rng_full <- range(tr_sim$estimated_impact)
#produce plot showing the full range of impacts across all sites and then
over the subsetted sites
impact_plot_full <- ggplot(data = tr_sim, aes(x = factor(site_id, levels =
site_id[order(estimated_impact)]), y = estimated_impact)) +
geom_bar(stat = "identity",width = 1, fill = "grey80")
impact_plot_full
impact_plot_full +
geom_bar(stat = "identity", width = 1, position = "stack", aes(y =
estimated_impact[impact_group == 1])) +
scale_fill_gradient2(low="firebrick", mid="yellow", high = "green4") +
labs(y = "Estimated Impact ($/week)", x = "Total number of sites with estimate
is 100", title = "Sites with the greatest impact after coverage loss") +
theme(axis.text.x = element_blank()) +
scale_y_continuous(breaks =
round(seq(rng_full[1],rng_full[2],by=100),digits=0))
私は灰色で、バックグラウンドでのすべてのデータをプロットすることができ、私はこれの上に、応答データの負の範囲をプロットしようとしています。私は、「美学は長さ1か、データ(100)、y、xと同じでなければならない」というエラーを得る。負のデータはデータセット全体と同じ長さではないため、これが発生していることはわかっていますが、これを行う方法を理解できません。どんな提案も大歓迎です。
は、あなたがデータのサブセットとgeom_bar
ため
aes()
で
fill
を使用する必要が カーティス
ありがとうございます@ M.A。、素晴らしい作品です。私はあなたの答えを+1しようとしましたが、私の担当者のスコアは低すぎます – Curtis