問題タブ [ggally]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - GGally::ggpairs のカラー パレットを変更するには?
これは、 R および ggpairs のユーザー定義カラー パレットと同じ質問 ですか、またはggplot を使用して GGally::ggpairs のカラー パレットを変更する方法はありますか?
そこにあるソリューションが機能しなくなっただけです。
カラーパレットも変更したいのですが、ggplotを使ってGGally::ggpairsのカラーパレットを変更する方法はありますか?もう機能しません。何をすべきか?
MWE:
追加したい
(明らかにそれは単なるダミーコードです)そして次のようなものを取得します(すべてのドットを塗りつぶしたわけではありません):
r - GGally:ggparcoord を機能させる
エラーをスローします
これはGGallyの例からのものです。これは(別の)バグですか?
r - ggparcoord: 離散スケールを使用した色
ggparcoord
個別のスケールを使用してプロットに色を付けることができないようです。私がこれを行うとき:
Species
出力プロットは、連続スケールを使用して(因子のレベルを使用して)線を着色しています。
scale_color_manual
ここで指定されたトリックの修正版も試しました: ggparcoordで色を制御しますが、役に立ちません。
しかし、次のエラー メッセージが表示されますError: Continuous value supplied to discrete scale
。
私も試しました.. + scale_color_discrete()
:同じエラーメッセージ。
私は困惑しています... ggparcorod クランページの例でさえ機能していません:
エラーメッセージ:Error: (list) object cannot be coerced to type 'double'
編集
以下のDidzis Elfertsのmapping=aes(color=as.factor(Species))
回答に示すように、これには を使用する解決策があります。ただし、さらにいくつかのカスタマイズを追加する必要がありますscale_color_discrete
パーツを追加せずに同じことを達成する方法はありscale_color_discrete("Species", labels=levels(iris$Species) )
ますか?
たとえばggplot2
、
適切にラベル付けされた凡例を自動的に生成します。に類似の方法はありggparcoord
ますか?
R バージョン 3.2.1 を使用していますggplot2_2.0.0
。GGally_1.0.0
どんな助けでも大歓迎です!
r - ラップ関数を使用して GGally::ggpairs で loess メソッドを使用する方法
Coursera R Regression Models コースで提供されているこの単純な例を再現しようとしています。
6x6 ペアのプロットが表示されることを期待しています。スイス データの 6 つの変数の組み合わせごとに、黄土がより滑らかで信頼区間が 1 つある散布図です。
ただし、次のエラーが表示されます。
display_param_error() のエラー:「params」は非推奨の引数です。関数を「ラップ」して引数を提供してください。help("wrap", package = "GGally")
と のヘルプ ファイルに目を通し、ggpairs()
との関数wrap()
のさまざまな組み合わせを試しました。wrap()
wrap_fn_with_param_arg()
これを期待どおりに動作させることができます:
しかし、黄土の部分を追加すると、次のようにはなりません。
上記の行を試したときに、このエラーが発生しました。
value[3L] のエラー: 次の ggpair プロット関数はすぐに利用できます: 連続: c('points', 'smooth', 'density', 'cor', 'blank') コンボ: c('box', 'dot ', 'facethist', 'facetdensity', 'denstrip', 'blank') 離散: c('ratio', 'facetbar', 'blank') na: c('na', 'blank')
diag 連続: c('densityDiag', 'barDiag', 'blankDiag') diag 離散: c('barDiag', 'blankDiag') diag na: c('naDiag', 'blankDiag')
function(data, mapping, ...){ の API に従う独自の関数を提供することもできます。. . } そして ggplot2 プロット オブジェクトを返します 例: my_fn <- function(data, mapping, ...){ p <- ggplot(data = data, mapping = mapping) + geom_point(...) p } ggpairs(data, lower = リスト (連続 = my_fn))
提供機能:黄土
明らかに、私はレスを間違った場所に入力しています。黄土の部分を追加する方法を理解してくれる人はいますか?
params 引数が非推奨になったため、ggpairs に loess を実装する方法を尋ねているため、私の問題はこれとは異なることに注意してください。
どうもありがとう。
r - dplyr は GGally をマスクし、ggparcoord を壊します
新しいセッションを指定して、関数のドキュメントで提供されている小さなggparcoord(.)の例を実行します
結果は次のプロットになります。
繰り返しますが、新しいセッションで開始し、ロードされたdplyrで同じスクリプトを実行します
結果:
エラー: (リスト) オブジェクトを型 'double' に強制することはできません
library(.)ステートメントの順序は重要ではないことに注意してください。
質問
- コードサンプルに何か問題がありますか?
- 問題を克服する方法はありますか (いくつかの名前空間関数を介して)?
- それともこれはバグですか?
より大きな分析ではdplyrとggparcoord(.)の両方が必要ですが、この最小限の例は私が直面している問題を反映しています。
バージョン
- R @ 3.2.3
- dplyr @ 0.4.3
- GGally @ 1.0.1
- ggplot @ 2.0.0
アップデート
Joran が提供した優れた回答をまとめると、次のようになります。
回答
- ggparcoord(.)は、ダイヤモンド データ セット (dplyr がロードされている場合) によって指定されたtbl_df ではなく、data.frameを想定しているため、コード サンプルは実際には間違っています。
- この問題は、tbl_dfをdata.frameに強制することで解決されます。
- いいえ、バグではありません。
作業コードのサンプル:
r - スタンドアロンのレジェンドを ggpairs に組み込む (テイク 2)
tl;drggpairs
は、満足のいくスタンドアロンの凡例 (プロット全体で共通の色を説明する) を取得できません。
長々とすみません。
GGally::ggpairs
(さまざまな種類のプロット行列を で描画するための拡張パッケージ) を使用して (下三角) ペア プロットを描画しようとしていggplot2
ます。これは基本的に、外部の凡例を ggpairs() に追加する方法は?と同じ質問です。、しかし、私はその質問への答えに審美的に満足していないので、これを拡張機能として投稿しています(コメント投稿者から提案/推奨された場合、この質問を削除し、代わりにその質問に報奨金を提供します)。特に、凡例をサブプロット フレームの外側に表示して、1 つの仮想サブプロット内に配置するが追加の幅を保持できるようにするか、(理想的には) 別の (空の) サブプロットに配置します。以下に示すように、私の部分的な解決策には両方とも問題があります。
偽のデータ:
ベースプロット機能:
上部/右側の列をトリミングする関数:
左の列の凡例を取り除きます (上記のリンクされた質問のように):
問題:
- 凡例の背後にある空白のパネルは、実際にはいくつかのポイントを隠しています。いつものようにパネルの外にない理由はわかりませんが、それ
ggpairs
は何かをしているのだと思います - パネルの外側(上または右側)にある場合は、パネル自体がすべて同じサイズになるように、余分なスペースを残しておきたいと思います。しかし、
ggmatrix
/ggpairs
はこれについて非常に柔軟性がないように見えます。
私がこれまでに試すことができた唯一の代替手段は、凡例を抽出して使用することにより、ggplot の個別の凡例とプロットgridExtra::grid.arrange()
に従うことです。
問題:
- によって抑制された軸とラベル
ggpairs
が戻ってきました ...
また、凡例のみを含む特別なプロットを含むパネルを作成することも検討しました (つまりtheme(SOMETHING=element.blank)
、プロット自体を非表示にするために使用しようとしましたが、その方法がわかりませんでした。
最後の手段として、必要に応じて自分で軸をトリミングすることもできますが、これはggpairs
そもそも何をしているのかを実質的に再発明しています...