拉 - "Error in make_ansi_style(x[["色"]]) : Unknown style specification: br_magenta"



每当我尝试运行代码pull时,错误消息

Error in make_ansi_style(x[["color"]]) : 
Unknown style specification: br_magenta

我该如何解决这个问题?

我也有同样的错误,上周正常工作的代码现在在make_ansi_style(x[["color"]])的ggplot: error上出错了:未知样式规格:br_magenta

我不知道这个错误发生在哪里,但是今天我试着运行我的一些代码从2年前,我突然遇到了这个错误,特别是在类似的东西:

data %>% group_by(mygroups) %>% dplyr::summarize(min=min(myfeature))

与2年前的唯一区别是我的数据现在包含一些缺失值。我可以通过正确处理缺失的值来修复它,即min("feat", na.rm=TRUE)

但是我不知道为什么这会导致"未知的样式规范"。错误,或者是否与您的问题有关。

数据科学(即tidyverse)方法,如ggplotgroup_by需要整洁的输入。特别是ggplot,需要整洁的输入或fortify()可以转换为数据帧的任何输入对象。因此,在将绘制的数据传递给ggplot之前,将其转换为数据帧是安全的。

我曾经在尝试使用数字向量作为输入数据绘制ggplot图形时遇到过同样的错误。

ggplot为例:

library(tidyverse)
data_v <- matrix(rnorm(20*2), ncol=2)
data_clr <- c(rep(-1,10), rep(1,10))
data_v %>%
ggplot(aes(x=data_v[,1], y=data_v[,2], color=(3-data_clr))) +
geom_point(size=2) +
xlab("data_v[,1]") +
ylab("data_v[,2]")

R Notebook中运行上述代码将输出您提到的错误:

Error in make_ansi_style(x[["color"]]) : 
Unknown style specification: br_magenta

但是如果你在R脚本中运行相同的代码输出错误将略有不同(这是一个很好的信息),您将找到问题的根源。下面是您将得到的内容:

Error in `fortify()`:
! `data` must be a data frame, or other object coercible by `fortify()`, not a numeric vector.
Run `rlang::last_trace()` to see where the error occurred.

由于fortify()无法将数据转换为ggplot使用的数据帧而发生错误。

如果你运行rlang::last_trace()查看错误发生的地方,那么你会得到奇怪的东西:

rlang::last_trace()
# output:
# Error in make_ansi_style(x[["color"]]) : 
#   Unknown style specification: br_magenta

下面是传递数据给ggplot的正确方法:

## CORRECTED CODE:
library(tidyverse)
data_v <- matrix(rnorm(20*2), ncol=2)
data_clr <- c(rep(-1,10), rep(1,10))
df <- data.frame(data_v)
df %>%
ggplot(aes(x=df[,1], y=df[,2], color=(3-data_clr))) +
geom_point(size=2) +
xlab("data_v[,1]") +
ylab("data_v[,2]")

注意:另一种遇到相同类型错误的方法是将非结构化数据传递给color参数。在下面的例子中,我将一个只包含2个数据点的向量传递给color参数。

library(tidyverse)
data_v <- matrix(rnorm(20*2), ncol=2)
data.frame(data_v) %>%
ggplot(aes(x=data_v[,2], y=data_v[,1], color=c("red","blue"))) +
geom_point(size=2) +
xlab("data_v[,2]") +
ylab("data_v[,1]")
# Error in `check_aesthetics()`:
#   ! Aesthetics must be either length 1 or the same as the data (20): colour
# Run `rlang::last_trace()` to see where the error occurred.
rlang::last_trace()
# Error in make_ansi_style(x[["color"]]) : 
#   Unknown style specification: br_magenta

我得到了同样的问题,并通过导入stringr库解决了这个问题。

library(stringr)

相关内容

最新更新