如何在R中为60×2矩阵自定义带不同颜色和标记的绘图?
优化浅黄色标记的解决方案
嘿,针对你遇到的黄色点颜色过浅的问题,核心原因是默认的yellow本身亮度偏高,和白色渐变后容易显得淡而不显眼。咱们可以通过调整黄色渐变的终点颜色,换成饱和度更高的暖黄色系,就能轻松解决这个问题。下面是具体的R代码实现和思路:
步骤1:准备颜色向量(优化黄色组)
我们把原来的浅黄替换成goldenrod2(金盏花黄)或者orange(橙色)这类饱和度更高的颜色,这样和白色渐变后的效果会更鲜明:
# 生成白→深红的渐变(对应1-10行、31-40行) red_grad <- colorRampPalette(c("white", "firebrick"))(10) # 生成白→金盏花黄的渐变(对应11-20行、41-50行)—— 替换浅黄为高饱和黄 gold_grad <- colorRampPalette(c("white", "goldenrod2"))(10) # 生成白→宝蓝的渐变(对应21-30行、51-60行) blue_grad <- colorRampPalette(c("white", "royalblue"))(10) # 组合所有行的颜色 colors <- c(red_grad, gold_grad, blue_grad, red_grad, gold_grad, blue_grad)
步骤2:绘制自定义样式的散点图
先初始化画布,再分别绘制方形和圆形标记,指定对应的颜色:
# 先创建示例矩阵(如果你的a已经存在,这步可以跳过) set.seed(123) a <- matrix(rnorm(120), ncol=2) # 初始化空画布,设置合适的坐标轴范围 plot(a, type = "n", main = "优化后的散点图") # 绘制1-30行:实心方形标记(pch=15) points(a[1:30, ], pch = 15, col = colors[1:30]) # 绘制31-60行:实心圆形标记(pch=16) points(a[31:60, ], pch = 16, col = colors[31:60])
额外调整建议
如果你觉得goldenrod2还是不够深,可以试试这些颜色选项:
orange:更偏向橙色的暖黄,饱和度极高rgb(255, 180, 0, maxColorValue = 255):自定义的深黄色,可根据需求微调RGB值colorRampPalette(c("white", "orange", "gold"))(10):加入中间过渡色,让渐变更有层次
这样调整后,黄色组的标记就会和红、蓝组一样清晰显眼啦!
内容的提问来源于stack exchange,提问作者lanselibai
相关产品推荐
相关产品推荐

