USD_rows$project_type<- as.factor(USD_rows$project_type) > color <- c("red", "blue", "green", "orange") > p <- ggplot(USD_rows, aes(project_type,rewardTypeName)) + + geom_dotplot(fill = color[4], binaxis = "y", stackdir = "center", dotsize = 0.8) + + scale_y_continuous(breaks = seq(0, 6, 1)) + + theme_classic() + # 设置主题 + theme(panel.background = element_rect(fill = "white", colour = "black", size = 0.25), + axis.line = element_line(color = "black", size = 0.25), + axis.title = element_text(size = 13, face = "plain", color = "black"), + axis.text = element_text(size = 12, face = "plain", color = "black"), + legend.position = "none") > p Error: Discrete value supplied to continuous scale
时间: 2024-02-23 12:01:16 浏览: 213
这个错误通常是由于尝试应用离散变量于连续比例尺的情况导致的。在你的代码中,你将'project_type'变量转换为分类型变量,但当你使用它来创建图形时,你使用了连续的x轴比例尺。
为了解决这个错误,你可以将x轴比例尺转换为离散比例尺,或者使用其他适合的比例尺。例如,你可以使用'coord_flip'函数将y轴变成x轴,然后使用离散的颜色映射。
下面是一个可能的解决方案:
```
USD_rows$project_type <- as.factor(USD_rows$project_type)
color <- c("red", "blue", "green", "orange")
p <- ggplot(USD_rows, aes(rewardTypeName, project_type, fill = project_type)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize = 0.8) +
scale_fill_manual(values = color) +
scale_x_continuous(breaks = seq(0, 6, 1)) +
coord_flip() +
theme_classic() +
theme(panel.background = element_rect(fill = "white", colour = "black", size = 0.25),
axis.line = element_line(color = "black", size = 0.25),
axis.title = element_text(size = 13, face = "plain", color = "black"),
axis.text = element_text(size = 12, face = "plain", color = "black"),
legend.position = "none")
p
```
在这个代码中,我修改了aes函数的参数顺序,将'rewardTypeName'放在了前面,这样可以将y轴转换为离散比例尺。然后,我使用'fill'参数指定了离散的颜色映射,并使用'scale_fill_manual'函数手动指定了颜色值。最后,我使用了'coord_flip'函数将y轴变成x轴,以便更好地展示分类型变量的信息。
请注意,这里的解决方案仅适用于我的理解,如果你有更多的问题,请提供更多的上下文信息。
阅读全文