上述优化的代码出现了“Coordinate system already present. Adding new coordinate system, which will replace the existing one. Scale for fill is already present. Adding another scale for fill, which will replace the existing scale. Error in `geom_bar()`: ! Problem while converting geom to grob. i Error occurred in the 1st layer. Caused by error in `data_frame()`: ! Can't recycle `x1` (size 8) to match `y1` (size 4). Run `rlang::last_error()` to see where the error occurred. Warning message: In x + coord$start : longer object length is not a multiple of shorter object length”
时间: 2024-03-29 16:36:35 浏览: 207
这个错误信息显示了以下几个问题:
1. 坐标系已经存在,正在添加新的坐标系,这将替换现有的坐标系。
2. 填充比例尺已经存在,正在添加另一个填充比例尺,这将替换现有的比例尺。
3. 在将几何对象转换为grob时出现错误。
4. 在数据框函数中出现错误,x1的长度不能被重复匹配到y1,因为它们的长度不一样。
5. 出现警告信息,因为x的长度比y的长度长,它们的长度不是短的对象长度的倍数。
为了解决这些问题,您需要检查您的代码并确保它们符合预期。特别是要检查数据框中的列是否匹配,并确保您的图表设置不会重复添加已经存在的元素。
相关问题
运行“library(ggplot2) # 创建示例数据 data <- data.frame( group = c(rep("A", 3), rep("B", 3), rep("C", 3)), subgroup = rep(LETTERS[1:3], 3), value = c(1, 2, 3, 4, 5, 6, 7, 8, 9) ) # 计算每个子组的值的累计和 data$group_total <- ave(data$value, data$group, FUN = cumsum) data$subgroup_total <- ave(data$value, data$subgroup, FUN = cumsum) # 计算每个组的总和 group_total <- data.frame( group = unique(data$group), value = ave(data$value, data$group, FUN = sum) ) # 计算每个子组在其所属组内的占比 data$subgroup_prop <- data$value / data$group_total # 计算每个组内每个子组的占比 data$subgroup_prop <- ave(data$subgroup_prop, data$group, data$subgroup, FUN = sum) # 计算每个组的占比 group_prop <- group_total$value / sum(data$value) # 绘制多层圆环图 ggplot(data, aes(x = "", y = subgroup_prop, fill = subgroup)) + geom_bar(width = 1, stat = "identity") + coord_polar(theta = "y") + scale_fill_hue() + theme_void() + theme(legend.position = "right") + ggtitle("Subgroup Proportions") + annotate("text", x = 1.5, y = 0, label = paste0(round(group_prop * 100, 2), "%"), size = 10) + geom_bar(data = group_total, aes(x = "", y = value, fill = group), width = 1, stat = "identity") + coord_polar(theta = "y", start = group_prop * 2 * pi) + scale_fill_hue() + ggtitle("Group Totals")”出现了“Coordinate system already present. Adding new coordinate system, which will replace the existing one. Scale for fill is already present. Adding another scale for fill, which will replace the existing scale. Error in `geom_bar()`: ! Problem while converting geom to grob. i Error occurred in the 1st layer. Caused by error in `data_frame()`: ! Can't recycle `x1` (size 8) to match `y1` (size 4). Run `rlang::last_error()` to see where the error occurred. Warning message: In x + coord$start : longer object length is not a multiple of shorter object length”
这个错误信息显示了以下几个问题:
1. 坐标系已经存在,正在添加新的坐标系,这将替换现有的坐标系。
2. 填充比例尺已经存在,正在添加另一个填充比例尺,这将替换现有的比例尺。
3. 在将几何对象转换为grob时出现错误。
4. 在数据框函数中出现错误,x1的长度不能被重复匹配到y1,因为它们的长度不一样。
5. 出现警告信息,因为x的长度比y的长度长,它们的长度不是短的对象长度的倍数。
为了解决这些问题,您需要检查您的代码并确保它们符合预期。特别是要检查数据框中的列是否匹配,并确保您的图表设置不会重复添加已经存在的元素。
阅读全文