R语言:如何用scale_color_continuous完成当 HDI_category 高或非常高时,点为红色,当 HDI_category 低或中等时,点为紫色
时间: 2024-09-29 11:08:02 浏览: 43
在R语言的ggplot2中,如果你想根据`HDI_category`的高低类别动态地设置颜色,你可以使用`scale_fill_gradient()`或`scale_color_gradient()`函数,它们都是连续颜色映射工具,但通常适用于填充颜色而非边框。如果你需要控制点的颜色,可能需要自定义一些逻辑或者使用`scale_fill_manual()`或`scale_color_manual()`。
然而,`scale_color_continuous()`不太适合直接按照`HDI_category`的特定条件给定两个离散的颜色。如果想实现这种效果,可能需要先对`HDI_category`进行编码(例如,通过`cut`函数将其分为两部分),然后使用`scale_fill_manual`或`scale_color_manual`。
这里是一个示例,假设`HDI_category`是数值型并且我们想要根据其值分成两段(大于某个阈值为高,小于等于为低或中等):
```R
# 假设data是你的数据,threshold是划分高低的阈值
data$HDI_category_bin <- ifelse(data$HDI_category > threshold, "High", "Low/Medium")
# 使用手动颜色映射
p <- ggplot(data, aes(x = ..., y = ..., color = HDI_category_bin)) +
geom_point() +
scale_color_manual(
values = c("High" = "red", "Low/Medium" = "purple"),
labels = c("High", "Low or Medium")
)
p
```
请替换`...`为你要在x轴和y轴绘制的变量名。记住,`scale_color_manual`依赖于你提供的分组名称,所以需要确保`HDI_category_bin`已经被正确地赋予了相应的值。
阅读全文