[解決済み] かわした棒グラフの上に geom_text を配置する
2022-07-25 12:25:19
質問
タイトルはわかりやすいものにしようと思いましたが、まずデータからです。
dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L,
4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"),
ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L), .Label = c("srednja škola", "fakultet"), class = "factor"),
`(all)` = c(42.9542857142857, 38.7803203661327, 37.8996138996139,
33.7672811059908, 29.591439688716, 26.1890660592255, 27.9557692307692,
23.9426605504587, 33.2200772200772, 26.9493087557604)), .Names = c("variable",
"ustanova", "(all)"), row.names = c(NA, 10L), class = c("cast_df",
"data.frame"), idvars = c("variable", "ustanova"), rdimnames = list(
structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L,
3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma",
"fla"), class = "factor"), ustanova = structure(c(1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola",
"fakultet"), class = "factor")), .Names = c("variable", "ustanova"
), row.names = c("vma_srednja škola", "vma_fakultet", "vla_srednja škola",
"vla_fakultet", "ia_srednja škola", "ia_fakultet", "fma_srednja škola",
"fma_fakultet", "fla_srednja škola", "fla_fakultet"), class = "data.frame"),
structure(list(value = structure(1L, .Label = "(all)", class = "factor")), .Names = "value", row.names = "(all)", class = "data.frame")))
そして、ドッドッドッとした棒グラフを作りたいのですが、以下のようにします。
coord_flip
を行い、棒グラフの中にテキストラベルを入れたいと思います。
ggplot(bar) + geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), position = "dodge") +
coord_flip()
出力が表示されます。 ここで .
私は些細なことを要求していると思います。私はテキストラベルを積み重ねられたバーに追従させたいと思っています。ラベルはY軸に正しく配置されていますが、X軸に正しく配置するにはどうしたらよいでしょうか?
どのように解決するのですか?
これはあなたが望むものですか?
library(ggplot2)
ggplot(bar) +
geom_col(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`), group = ustanova),
position = position_dodge(width = .9)) +
coord_flip()
キーは
position = position_dodge(width = .9)
(ここで
.9
はバーのデフォルトの幅です)ではなく
position = "dodge"
これはパラメータなしの単なるショートカットです。さらに
group=ustanova
の美学を
geom_text
によるラベルをかわすために
ustanova
(第二の選択肢は
fill = ustanova
をグローバルな美学として
ggplot(bar, aes(fill = ustanova))
<イグ
で
ggplot2_2.0.0
には、いくつかの例があります。
?geom_text
をどのように配置するかについて
geom_text
を、かわされたバーや積み重ねられたバー上に配置する方法について説明します(" という名前のコードチャンク。
# Aligning labels and bars"
). Q&A
position_dodgeのwidth引数とは何ですか?
には、より詳細な説明があります。
関連
-
R - よくあるエラーとその原因 - 注意事項
-
R言語エラー:図の余白が大きすぎる 解決方法
-
DEG解析で'row.names'に重複した名前を付けられない場合の解決法
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] データフレーム内のランダムな行をサンプリングする
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】R関数でオプション引数を指定する "正しい "方法
-
[解決済み】set.seed関数を使用する理由
-
[解決済み】Rスクリプトで警告をグローバルに抑制する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
R read.table Error:埋め込まれたヌルが含まれているようです。
-
データボックス内の行/列の削除/追加を行うR言語
-
Rの警告 "条件の長さが1より大きいので、最初の要素しか使えない "に対する解決策
-
[解決済み] データフレームを結合(マージ)する方法(内側、外側、左側、右側)
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】Rスクリプトで警告をグローバルに抑制する方法
-
[解決済み] テーブルをデータフレームに変換する方法