具有不同 bin 宽度的直方图

histogram with varying bin widths

我正在尝试从以下论文 (http://dx.doi.org/10.1016/j.envsci.2011.08.004) 中复制图表图 1 的概念:

这是一个直方图,其 bin 宽度取决于 x 的值,其高度取决于变量 y。图表中的精确值并不重要 - 而是了解如何重现它。

以下代码为每个 measure 创建一个具有两个特征(abatementcost)的数据框。 measure的宽度是减量,measure的高度是成本。 measure 应从最低成本到最高成本排序。

measure <- c(LETTERS)
abatement <- c(sample(1:100, 26))
cost <- c(sample(-100:250, 26))
data <- data.frame(cbind(measure, abatement, cost))

也许我不太明白问题是什么,但如果您正在寻找订购数据框的方法,我认为这可能是一个很好的解决方案:

data2 <- data[ order(cost), ]

或者您可以使用 dplyr 包及其 arrange 功能。

从技术上讲,这是条形图而不是直方图(直方图特指用于表示连续变量分箱频率的条形图)...

你的 cbind() 搞砸了(将 abatementcost 转换为因子):

data <- data.frame(measure, abatement, cost)

这是一个开始:

with(dplyr::arrange(data,cost),
     barplot(width=abatement,height=cost,space=0))