私はansweringでした。question私は奇妙な問題に直面しました。ggplotファセットグリッドの軸ラベルが正しくない
ggplot2
で棒グラフを作成し、x軸ラベルをGroup
列の最後の文字にしたいとします。この目的のためにsubstring(Group, 3, 3)
を使用してください:
substring(df$Group, 3, 3)
# [1] "1" "2" "3" "1" "2" "1" "2" "3" "4"
しかし、私は以下のように
ggplot
でそれを使用する場合、それは最後の目盛りで
1
代わりの
4
を出力します。
ggplot(data=df, aes(x=Group, y=Value)) +
geom_bar(stat="identity") +
scale_x_discrete(labels = substring(Group, 3, 3), expand=c(0.1,0.1)) +
facet_grid(~ substring(Group, 1, 1), space="free_x", scales="free_x", switch="x") +
theme_bw() +
theme(strip.placement = "outside",
strip.background = element_rect(fill=NA,colour="grey50"),
panel.spacing=unit(0,"cm"))
私はそれがlabels =unique(substring(Group, 3, 3)
を使って仕事を得ることができますが、誰かが何が起こっているのかを説明しますか?
データ:
df <- structure(list(Group = structure(1:9, .Label = c("1_1", "1_2",
"1_3", "2_1", "2_2", "3_1", "3_2", "3_3", "3_4"), class = "factor"),
Value = c(-1.23, 2.34, 0.56, 1.87, -2.4, 5.54, -0.98, -2.31,
6)), .Names = c("Group", "Value"), row.names = c(NA, -9L), class = "data.frame")
# > df
# Group Value
# 1 1_1 -1.23
# 2 1_2 2.34
# 3 1_3 0.56
# 4 2_1 1.87
# 5 2_2 -2.40
# 6 3_1 5.54
# 7 3_2 -0.98
# 8 3_3 -2.31
# 9 3_4 6.00
を与えますグループ '?私はこれを試みたが、同じ結果を得る。それ以外は 'labels = c(" 1 "、" 2 "、" 3 "、" 1 "、" 2 "、" 1 "、" 2 "、" 3 "、" 4 ")私は再び同じプロットを得る?それは奇妙なことですね。 – Masoud
4つの異なる値を持つ軸があり、9つのラベルを指定します。それはあなたが提供する最初の4つのラベルを使用します。驚くべきことは何ですか? – Gregor
おそらく素朴な質問ですが、なぜ4つの異なる値がありますか? – Masoud