0

新しいパッケージggmosaicを使用してモザイク プロットを描画していggplot2ます。

stat_mosaic()使用しているデータセットの変数の 1 つだけで、「計算に失敗しました」というエラーが表示されます。問題は、変数の内容にあるようです。より正確には、 の]ような別のシンボルに置き換えると機能するため、 の処理に問題があるよう)です。

簡単な例:

# Parameters
library(ggplot2)
library(ggmosaic)
set.separators(c(":", ";", "|")) # cf. ggmosaic documentation

# Plot OK
ggplot(data = df) +
  geom_mosaic(aes(weight = 1, x = product(TheGroup, TheRange), fill = TheGroup), na.rm = TRUE) +
  theme(axis.text.x = element_text(angle = 0, hjust = .1)) +
  labs(x = "TheRange", y = "TheGroup")

# Plot NOK
ggplot(data = df) +
  geom_mosaic(aes(weight = 1, x = product(TheRange, TheGroup), fill = TheRange), na.rm = TRUE) +
  theme(axis.text.x = element_text(angle = 0, hjust = .1)) +
  labs(x = "TheGroup", y = "TheRange")

そして、変数を持つ私のデータフレームのサブセット:

df <- structure(list(TheRange = structure(c(1L, 1L, 2L, 1L, 1L, 1L, 
                                            1L, 2L, 3L, 3L, 2L, 3L, 1L, 3L, 1L, 2L, 3L, 2L, 1L, 2L, 3L, 2L, 
                                            1L, 2L, 2L, 3L, 1L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 1L, 3L, 1L, 2L, 
                                            1L, 3L, 3L, 1L, 3L),
                     .Label = c("(0,30]", "(30,50]", "(50,100]"), class = "factor"),
                     TheGroup = c("Groupe 2", "Groupe 1", "Groupe 2", 
                                 "Groupe 1", "Groupe 1", "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 2", 
                                 "Groupe 2", "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 2", "Groupe 2", 
                                 "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 1", 
                                 "Groupe 1", "Groupe 1", "Groupe 2", "Groupe 1", "Groupe 1", "Groupe 1", 
                                 "Groupe 2", "Groupe 1", "Groupe 1", "Groupe 2", "Groupe 2", "Groupe 2", 
                                 "Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2", 
                                 "Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2")),
                     .Names = c("TheRange", "TheGroup"),
                row.names = c(1L, 2L, 3L, 4L, 5L, 14L, 15L, 16L, 
                                               17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 30L, 
                                               31L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 41L, 42L, 43L, 44L, 46L, 
                                               47L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L),
                class = "data.frame")
4

1 に答える 1