1

我想在 R 中使用 beeswarm 绘制一些数据,其中每个点的 bg 颜色由我的数据中的一列定义。例如:

head(mydata)

## id   provean color
## 1635 9.428   #fee5d9
## 1092 9.000   #fb6a4a
## 791  8.708   #ffffff
## 1472 7.596   #fcae91
## 228  7.552   #ffffff
## 1004 7.433   #fcae91

颜色列具有我希望每个点具有的十六进制颜色代码,我尝试像这样实现它:

colorByMML <- mydata$color
beeswarm(mydata$provean,pch=21,cex=0.7, bty="n", col="#708090",pwbg=colorByMML)

但我得到的颜色与预期的不同。 在此处输入图像描述

如果我给出整数而不是十六进制代码,我会得到其他颜色。例如,如果我输入“1”而不是白色的十六进制代码(#ffffff),我会得到黑色作为背景颜色。简而言之,如何自定义每个点的颜色?

4

1 回答 1

1

假设 colorByMML 具有“字符”类型,您的代码应该可以正常工作。但是,如果 colorByMML 具有“因子”类型,则将使用整数因子级别(以及您的默认调色板)来设置颜色。根据您图中的颜色,我猜这就是问题所在。

换句话说,这可能是您正在寻找的:

colorByMML <- as.character(mydata$color)
于 2017-03-23T08:28:51.140 回答