5

以下のデータでわかるように、ファセット変数「items」の一部で、x軸変数「type」の一部のレベルが欠落しています。たとえば、「items=32」には「type=A」はありません。

存在しない「タイプ」に対応するx軸に沿った空のスペースを取り除きたい(たとえば、32アイテムの場合はタイプA)。

一部のデータ( "temp"):

 type   items     value
    A      16       6.3
    B      16       8.3
    C      16       7.9
    B      32       7.7
    C      32       8.3
    C      64       7.9

プロットのコード:

library(ggplot2)
ggplot(temp, aes(x = type, y = value, fill = type)) + 
  geom_bar(stat = "identity") + 
  facet_grid( . ~ items)

ここに画像の説明を入力してください

=======================

編集:

Joranのソリューションによると、設定scales = "free_x"は私が望むことを実行しています。ただし、アイテム番号32と64では、バーの幅が非常に大きくなります。すべてのバーの幅を均等にするのを手伝ってください。

ggplot(temp, aes(x = type, y = value, fill = type)) + 
  geom_bar(stat = "identity") + 
  facet_grid( . ~ items, scales = "free_x")

ここに画像の説明を入力してください

4

1 に答える 1

5

joranEtienneLow-Décarieの指示に従って、この古い未回答の質問を閉じてください。joranとEtienneLow -Décarieに賛成票を投じてください。

また、上記のRomanLuštrikの貴重なコメントに注意してください。「これを行う正当な理由があることを願っています。空白は非常に有益であり、これらのレベルの値が0であることを読者に知らせます(これはまだ値です)。 )。」

# data
temp <- structure(list(type = structure(c(1L, 2L, 3L, 2L, 3L, 3L), .Label = c("A", 
"B", "C"), class = "factor"), items = c(16L, 16L, 16L, 32L, 32L, 
64L), value = c(6.3, 8.3, 7.9, 7.7, 8.3, 7.9)), .Names = c("type", 
"items", "value"), class = "data.frame", row.names = c(NA, -6L
))

# plot
library(ggplot2)
ggplot(temp, aes(type, value, fill = type)) + 
  geom_bar(stat = "identity") + 
  facet_grid( . ~ items, scales = "free_x", space = "free") 

ここに画像の説明を入力してください

于 2013-01-22T18:31:09.917 に答える