我有一段看起来有点像这样的R代码
volumes = c(1000, 1000, 1000, 1000, 850, 1000, 900, 700, 1200, 1500, 1000, 1000, 1000, 1100, 500, 500, 1500, 1000, 1000, 1000, 820, 820, 780, 1300)
hist(volumes, xlab="Volume of fluid", ylab="Number of times", col=terrain.colors(6))
这适用于并产生适当标记的直方图。问题是我已经硬编码了数字6(这是用这个数据集直方图产生的条形数),如果我改变数据它可能不起作用。这很容易,我只是这样做,我说
volumes = c(1000, 1000, 1000, 1000, 850, 1000, 900, 700, 1200, 1500, 1000, 1000, 1000, 1100, 500, 500, 1500, 1000, 1000, 1000, 820, 820, 780, 1300)
hist(volumes, xlab="Volume of fluid", ylab="Number of times", col=terrain.colors(length(hist(volumes)$breaks) - 1))
巧妙地计算直方图中的断点数,并使用它来确定调色板中的颜色数。这有效,但是具有不再具有自定义xlab和ylab轴标签的意外副作用。
我认为hist(volumes)$breaks
正在生成我看到的直方图,但我不明白为什么。使用动态生成的调色板来解决此问题并生成我想要的标记直方图的最佳方法是什么?