我有一个由傻瓜组成的数据集,如下所示:
public function beforeValidate($options=array())
{
$sum = 0;
$sum += (isset($this->data['MyModel']['num_a'])) ? $this->data['MyModel']['num_a'] : 0;
$sum += (isset($this->data['MyModel']['num_b'])) ? $this->data['MyModel']['num_b'] : 0;
$sum += (isset($this->data['MyModel']['num_c'])) ? $this->data['MyModel']['num_c'] : 0;
$sum += (isset($this->data['MyModel']['num_d'])) ? $this->data['MyModel']['num_d'] : 0;
if ($sum > 0) {
$this->validationErrors['num_all'][] = 'There were no a, b, c or d selected.'
}
}
我想创建一个马赛克图/网格图(实际上我不确定应该如何调用这样的图),其中每个1值以黑色显示,每个0值以白色显示。显示的行之间不应有空格或任何其他颜色。
我想要创建的情节示例可以在this paper on page 97中找到:
我尝试了几个不同的软件包,例如# Example data
set.seed(123)
data <- data.frame(x1 = rbinom(10, 1, 0.3),
x2 = rbinom(10, 1, 0.6),
x3 = rbinom(10, 1, 0.5))
或ggplot2
,但不幸的是我无法生成完全相同的情节。任何帮助或包装的任何提示都非常感谢!
答案 0 :(得分:3)
image
函数可能是显示颜色矩阵的最简单方法。您需要转置和反转它以使订单正确
image(t(as.matrix(data[nrow(data):1, ])), col = c(0, 1), axes = FALSE)
axis(1, seq(0, 1, l = ncol(data)), seq_len(ncol(data)))
axis(2, seq(0, 1, l = nrow(data)), seq_len(nrow(data)))
legend(1.1, 0, c(0:1), fill = c(0, 1), xpd = TRUE)
答案 1 :(得分:2)