[解決済み] ggplot2 で凡例のアルファ値を設定する方法
2023-05-27 09:26:59
質問
風向に対する風速のグラフがあり、膨大な数のポイントがあるため、color=monthに加え、alpha=I(1/20)を使用しています。
以下はコードのサンプルです。
library(RMySQL)
library(ggplot2)
con <- dbConnect(...)
wind <- dbGetQuery(con, "SELECT speed_w/speed_e AS ratio, dir_58 as dir, MONTHNAME(timestamp) AS month, ROUND((speed_w+speed_e)/2) AS speed FROM tablename;");
png("ratio-by-speed.png",height=400,width=1200)
qplot(wind$dir,wind$ratio,ylim=c(0.5,1.5),xlim=c(0,360),color=wind$month,alpha=I(1/30),main="West/East against direction")
dev.off()
これはまともなグラフを生成しますが、私の問題は凡例のアルファが1/30であり、読めなくなることです。代わりに凡例が1アルファになるように強制できる方法はありますか?
以下はその例です。
どのように解決するのですか?
更新
バージョン 0.9.0 のリリースでは、凡例の美的価値を上書きするために
override.aes
の中で
guides
関数を使用します。ですから、このようなものをプロットに追加すると
+ guides(colour = guide_legend(override.aes = list(alpha = 1)))
とすればよいでしょう。
私は、データの空のサブセットを使用して geom を重複して呼び出し、その呼び出しからの凡例を使用することによって、これを回避しました。 残念ながら、データ フレームが実際に空である場合 (たとえば
subset(diamonds,FALSE)
を扱うのと同じようにこのケースを扱うようです。
NULL
をデータフレームの代わりに扱うのと同じように扱います。 しかし、1行だけのサブセットを取って、それを
NaN
に設定することで同じ効果を得ることができます。
Chaseの例に基づいています。
# Alpha parameter washes out legend:
gp <- ggplot() + geom_point(data=diamonds, aes(depth, price, colour=clarity), alpha=0.1)
print(gp)
# Full color legend:
dummyData <- diamonds[1, ]
dummyData$price <- NaN
#dummyData <- subset(diamonds, FALSE) # this would be nicer but it doesn't work!
gp <- ggplot() +
geom_point(data=diamonds, aes(depth, price, colour=clarity), alpha=0.1, legend=FALSE) +
geom_point(data=dummyData, aes(depth, price, colour=clarity), alpha=1.0, na.rm=TRUE)
print(gp)
関連
-
[解決済み] 凡例のフォントサイズを大きくする ggplot2
-
[解決済み] Rの再現性のある優れた例題の作り方
-
[解決済み] データフレームを結合(マージ)する方法(内側、外側、左側、右側)
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] xkcd風のグラフを作るには?
-
[解決済み] ggplotで凡例のタイトルを変更する方法
-
[解決済み] ggplot2 Rプロットで軸の制限を設定するには?
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み] ggplot2 の棒グラフで棒を並べる
-
[解決済み】ggplot2によるサイド・バイ・サイド・プロット
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
DEG解析で'row.names'に重複した名前を付けられない場合の解決法
-
[解決済み] HTML、PDF、DOCXで見栄えのするシンプルな手動のRMarkdownテーブル
-
[解決済み] Rの代入演算子"="と"<-"の違いは何ですか?
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み】ggplot2で軸のタイトルやラベルの大きさを変更する。