1

我在源代码中运行这些代码行,然后在 Rstudio 中单击“运行”。

fill_colors <- c()
for(i in 1:length(hotdogs$Country) ) {
  if (hotdogs$Country[i] == "United States") {
    fill_colors <- c(fill_colors, "#821122")
  } else {
    fill_colors <- c(fill_colors, "cccccc")
  }
}

代码被传递到控制台,但由于某种原因,情节没有改变。

知道为什么吗?

4

2 回答 2

2

如果您关注http://www.cs.odu.edu/~mweigle/cs795/barchart-r.html

我怀疑您没有直接在它之后运行该行,即:

barplot(hotdogs$Dogs.eaten, names.arg=hotdogs$Year, col=fill_colors, 
        border=NA, xlab="Year", ylab="Hot dogs and buns (HDB) eaten")

仅运行您给出的行将生成一个 vector fill_colors,但您需要将其用作fillin的参数barplot

于 2012-12-19T03:14:19.983 回答
1

我假设您fill_colors之前在创建绘图时使用过,现在您正在重新定义fill_colors向量。

R 中的绘图不会像在 Excel 等其他应用程序中那样动态链接到数据(在自动调用模式下)。因此,您需要使用新的情节重新创建情节,fill_colors因为它不会自行更新。

此外,您可能会发现ifelse有用。上面的代码可以写成:

fill_colors <- ifelse(hotdogs$Country == "United States", "#821122", "cccccc") 
于 2012-12-19T03:15:02.507 回答