我正在用ggplot2使用新的软件包ggmosaic来绘制马赛克图。
对于我使用的数据集中的一个变量,我有一个错误"Computation failed in stat_mosaic()“。问题似乎与变量的内容有关,更确切地说,是与]的处理有关,因为当我用另一个符号(如) )替换它时,它就会起作用。
一个简单的例子:
# 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")https://stackoverflow.com/questions/41533275
复制相似问题