[解決済み] 複数のBoxplotを1つのグラフにプロットする
質問
で保存したデータを
.csv
ファイルには12列のカラムがあります。2列目から11列目(ラベルは
F1, F2, ..., F11
) は
features
.
Column one
には
label
これらの機能のうち、どちらか
good
または
bad
.
をプロットしたいと思います。
boxplot
の
これら11の機能すべて
に対して
label
で区切られていますが
good
または
bad
. 今までの私のコードは
qplot(Label, F1, data=testData, geom = "boxplot", fill=Label,
binwidth=0.5, main="Test") + xlab("Label") + ylab("Features")
しかし、これでは
F1
に対して
label
.
質問:どのように
F2, F3, ..., F11
に対して
label
を1つのグラフに表示し、いくつかの
dodge position
? 0 1] の範囲内で同じスケールになるように正規化しました。
テストデータは以下の通りです。 ここで . 問題を説明するために手書きで何かを描きました(下記参照)。
解決方法は?
プロットする前に、データを融解して特定の形式にする必要があります(融解したデータがどのように見えるかは下記を参照)。それ以外は問題ないようです。
require(reshape2)
df <- read.csv("TestData.csv", header=T)
# melting by "Label". `melt is from the reshape2 package.
# do ?melt to see what other things it can do (you will surely need it)
df.m <- melt(df, id.var = "Label")
> df.m # pasting some rows of the melted data.frame
# Label variable value
# 1 Good F1 0.64778924
# 2 Good F1 0.54608791
# 3 Good F1 0.46134200
# 4 Good F1 0.79421221
# 5 Good F1 0.56919951
# 6 Good F1 0.73568570
# 7 Good F1 0.65094207
# 8 Good F1 0.45749702
# 9 Good F1 0.80861929
# 10 Good F1 0.67310067
# 11 Good F1 0.68781739
# 12 Good F1 0.47009455
# 13 Good F1 0.95859182
# 14 Good F1 1.00000000
# 15 Good F1 0.46908343
# 16 Bad F1 0.57875528
# 17 Bad F1 0.28938046
# 18 Bad F1 0.68511766
require(ggplot2)
ggplot(data = df.m, aes(x=variable, y=value)) + geom_boxplot(aes(fill=Label))
<イグ
編集する ファセットする必要がありそうなことに気がつきました。こちらも実装してみました。
p <- ggplot(data = df.m, aes(x=variable, y=value)) +
geom_boxplot(aes(fill=Label))
p + facet_wrap( ~ variable, scales="free")
<イグ
2を編集します。
を追加する方法
x-labels
,
y-labels
,
title
, 変更
legend heading
を追加する。
jitter
?
p <- ggplot(data = df.m, aes(x=variable, y=value))
p <- p + geom_boxplot(aes(fill=Label))
p <- p + geom_jitter()
p <- p + facet_wrap( ~ variable, scales="free")
p <- p + xlab("x-axis") + ylab("y-axis") + ggtitle("Title")
p <- p + guides(fill=guide_legend(title="Legend_Title"))
p
<イグ
3を編集します。
アライメントの取り方
geom_point()
を box-plot の中央に配置することはできますか?それは
position_dodge
. これでうまくいくはずです。
require(ggplot2)
p <- ggplot(data = df.m, aes(x=variable, y=value))
p <- p + geom_boxplot(aes(fill = Label))
# if you want color for points replace group with colour=Label
p <- p + geom_point(aes(y=value, group=Label), position = position_dodge(width=0.75))
p <- p + facet_wrap( ~ variable, scales="free")
p <- p + xlab("x-axis") + ylab("y-axis") + ggtitle("Title")
p <- p + guides(fill=guide_legend(title="Legend_Title"))
p
<イグ
関連
-
[解決済み] 不適合な配列のコードエラー
-
[解決済み】ベースグラフィックスでプロットエリアの外側に凡例をプロットする?
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】Rでのデータ操作。'X'はアトミックでなければならない
-
[解決済み】dplyr: "Error in n(): 関数は直接呼ばれるべきではありません"
-
[解決済み】"object not interpretable as a factor "というエラーの意味は?[クローズド]
-
[解決済み] matplotlib でプロットをクリアするために cla()、clf() または close() をいつ使うか?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] Rで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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】xtsオブジェクトでエラー: "antempt to set 'colnames' on the object with less than two dimension "を克服する方法
-
[解決済み】添え字付き代入でNAを使用することはできません
-
[解決済み】R - if文の引数の長さが0である。
-
[解決済み】ggplot boxplotでPosition-dodge警告?
-
[解決済み】長いオブジェクトの長さは、短いオブジェクトの長さの倍数ではない?[重複]。
-
[解決済み】R: predict() の数値 'envir' 引数が長さ1でない。)
-
[解決済み】R 置換する項目数が置換長の倍数でない/しかし結果は正しい
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み】 eval(expr, envir, enclos) でのエラー : オブジェクトが見つかりません。
-
[解決済み】起動時にパーをデフォルト値にリセットする方法