gpt4 book ai didi

r - 第一次执行代码时颜色不正确

转载 作者:行者123 更新时间:2023-12-01 10:35:44 24 4
gpt4 key购买 nike

我有一个代码可以在一页上绘制多个堆叠条形图。我指定了一个调色板,这样每个数据组在每个图表中都与相同的颜色相关联。我发现第一个图表中的颜色不正确,但在所有后续图表中都是正确的。如果我在同一个 R session 中重新运行代码,所有图表都具有正确的颜色。但是,如果我退出 R 并运行代码,第一个图表的颜色又是错误的。

我的代码非常复杂,所以我整理了一个简单的示例来说明问题。同样,我在开始新的 R session 后第一次运行代码时,颜色不正确。如果代码在同一个 R session 中重新运行,它们是正确的。

# Data vector for bar plot,
#
dvec <- c( 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1.73, 0, 0, 0, 0, 0,
4.81, 0, 0, 0.03, 0.03, 0,
2.77, 0, 0, 0.42, 1.04, 0,
2.84, 0.02, 0, 2.25, 4.21, 0.02,
1.32, 0.54, 0.01, 3.44, 10.49, 0.01,
0.13, 1.63, 0.02, 4.42, 17.70, 0.03,
0.08, 2.49, 0.03, 8.64, 31.07, 0.02,
0, 3.08, 0.05, 9.04, 50.22, 0.01)

# matrix to pass to barplot, 12 columns, 6 rows

smat <- matrix(dvec,nrow=6)

# use this color palette and plot the barchart

zoopal <- palette(c("magenta","red","darkred","yellow","cyan","blue"))

barplot(smat,space=0,col=zoopal,axes=FALSE,axisnames=FALSE,
xaxs="i",yaxs="i",ann=FALSE)

我在启动 R 后第一次运行代码时,得到以下信息: Incorrect colors

当我再次运行代码时,我得到了正确的颜色:

Correct colors

我不明白为什么会这样。这几乎就像我指定的调色板在第一次运行代码时没有被使用一样。我应该注意到,虽然我在 MacOSX 10.8.5 下使用 R 版本 3.2.1 开发了 R 代码,但是当代码在同事的 Windows 计算机上运行时会发生同样的事情。谁能解释我做错了什么?谢谢。

最佳答案

我可以在当前版本的 R 和 MacOS 上重现。它似乎与对 palette 的(不必要的)调用有关。省略该调用可以解决问题。请注意,这实际上被描述为 ?palette 的预期结果,它说:“一个字符向量给出了 有效的调色板。”(强调)

在我看来,这确实是 palette 的一种非功能性行为。它显然被设计为作为系统副作用而不是返回当前有用的值,并且返回的值大概应该存储为“oldpal”或类似的东西。正如帮助页面上所讨论的,调色板的使用应该改变(后续)数字到颜色的映射而不是设置,而不是返回颜色列表。

关于r - 第一次执行代码时颜色不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com