R语言eulerr包绘制韦恩图使用RGB色值报错的相关问询
eulerr包十六进制色值报错解决方案
eulerr包完全支持十六进制RGB/RGBA格式的色值指定配色,你遇到的报错与包本身无关,是色值格式错误导致的。
报错原因
你写的第二个十六进制色值#5EACCAB为7位字符,不符合R的颜色规范:
- 不带透明度的十六进制RGB色值为
#加6位十六进制字符(每2位分别对应红、绿、蓝通道的色阶) - 带透明度的十六进制RGBA色值为
#加8位十六进制字符(最后2位对应透明度通道)
7位字符属于非法格式,触发了R底层颜色转换函数col2rgb()的报错。
解决方法
修正错误的色值即可,如果你想要保留原配色的大致色调,可将错误的#5EACCAB修改为6位不透明色值#5EACCA,或是补全为8位带透明度的色值#5EACCABB。
修正后的可运行代码如下:
tiff("test.tiff", units="in", width=7, height=5, res=600) fit <- euler(c(A = 1657, B = 105, "A&B" = 65, C = 407, "A&C" = 657, "B&C" = 138, "A&B&C" = 228)) plot(fit, fills = c("#CDCDCD", "#5EACCA", "#E6A176"), quantities = TRUE) dev.off()
验证技巧
如果不确定自己用的十六进制色值是否合法,可提前运行col2rgb("待验证色值")测试,运行无报错即为合法色值,可直接传入eulerr的配色参数使用。
内容的提问来源于stack exchange,提问作者arto
相关产品推荐
相关产品推荐

