[解決済み] Rにおける点ラベルのインテリジェントな配置
質問
-
R プロットでインテリジェントなラベル配置を実装する R ライブラリ/関数はありますか? 多くのラベルが互いに、あるいは他の点 (あるいはプロット内の他のオブジェクト) に重なっています。
-
もしそうでなければ、特定の問題のある点のラベル配置でアルゴリズムを快適に手助けする方法はありませんか? 最も快適で効率的なソリューションが欲しいです。
あなたは、他の可能性を遊びながら試すことができ、私の 再現可能な例 で遊んでみて、私より良い結果を得られるかどうか見てみましょう。
# data
x = c(0.8846, 1.1554, 0.9317, 0.9703, 0.9053, 0.9454, 1.0146, 0.9012,
0.9055, 1.3307)
y = c(0.9828, 1.0329, 0.931, 1.3794, 0.9273, 0.9605, 1.0259, 0.9542,
0.9717, 0.9357)
ShortSci = c("MotAlb", "PruMod", "EriRub", "LusMeg", "PhoOch", "PhoPho",
"SaxRub", "TurMer", "TurPil", "TurPhi")
# basic plot
plot(x, y, asp=1)
abline(h = 1, col = "green")
abline(v = 1, col = "green")
ラベリングのために、私はこれらの可能性を試しましたが、どれも本当に良いものではありませんでした。
-
これはひどい
text(x, y, labels = ShortSci, cex= 0.7, offset = 10)
-
これは、すべての点に対してラベルを配置するのではなく、外れ値に対してのみラベルを配置したい場合に有効です。 しかし、それでも、ラベルはしばしば間違って配置されます。
identify(x, y, labels = ShortSci, cex = 0.7)
-
これは有望に見えましたが、ラベルがポイントに近すぎるという問題があります。 私はスペースでそれらをパッドしなければなりませんでしたが、これはあまり役に立ちません。
require(maptools) pointLabel(x, y, labels = paste(" ", ShortSci, " ", sep=""), cex=0.7)
-
require(plotrix) thigmophobe.labels(x, y, labels = ShortSci, cex=0.7, offset=0.5)
require(calibrate)
textxy(x, y, labs=ShortSci, cx=0.7)
ありがとうございました。
EDITです。 todo:試してみてください。 実験曲線 {Hmisc} .
どのように解決するのですか?
私はいくつかの解決策を見つけました! 残念ながら、それは究極の、そして理想的なものではありませんが、それは今私のために最もよく機能するものです。半分アルゴリズムで半分手動なので、ジョランがスケッチした純粋な手動ソリューションに比べて時間を節約することができます。
私は非常に見落としていました。
の重要な部分を見落としていました。
?identify
ヘルプ!
ラベルを配置するために使用されるアルゴリズムは、textで使用されるものと同じです。 posが指定されている場合と同じです。 ポインタの位置が識別されたポイントに相対して、識別のposを決定するという点です。
ですから、もしあなたが
identify()
という解決策をとると、質問で書いたように
を使えば、ラベルの位置を変えるには、その点を直接クリックするのではなく
その点の隣を希望する方向に相対的にクリックします!!!
素晴らしい機能です。
欠点は、ポジションが4つ(上、左、下、右)しかないことですが、私は残りの4つ(左上、右上、左下、右下)の方がありがたいかな...と思っています。なので、気にならないポイントにはこれを使い、それ以外のポイントはjoranさんの提案通り、パワーポイントに直接ラベルを貼っています :-)
追伸: directlabels lattice/ggplot ソリューションはまだ試していません。
関連
-
R言語エラー:図の余白が大きすぎる 解決方法
-
R read.table Error:埋め込まれたヌルが含まれているようです。
-
[R] is.data.frame(x) のエラー : (リスト) オブジェクトを 'double' 型に強制できない。
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] ggplot 2.0.0でのポイントサイズ
-
[解決済み] クリック可能なラベルを持つチェックボックスを作成するには?
-
[解決済み] リストやデータフレームの要素にアクセスするためのブラケット[ ]とダブルブラケット[[ ]]の違いについて
-
[解決済み] What does "for" attribute do in HTML <label> tag?
-
[解決済み】Reactがlabel要素の'for'属性を無視する件
-
[解決済み] FUN内のlapplyインデックス名へのアクセス
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
R 描画エラー plot.new() : 図形の余白が大きすぎる
-
二項演算子への非数値引数を報告するR言語エラー
-
R - よくあるエラーとその原因 - 注意事項
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] リストやデータフレームの要素にアクセスするためのブラケット[ ]とダブルブラケット[[ ]]の違いについて
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】geom_pointでポイントにラベルを付ける。
-
[解決済み】R関数でオプション引数を指定する "正しい "方法
-
[解決済み】自作関数を書くときにRの省略機能を使うには?