具有不同 bin 宽度的直方图
histogram with varying bin widths
我正在尝试从以下论文 (http://dx.doi.org/10.1016/j.envsci.2011.08.004) 中复制图表图 1 的概念:
这是一个直方图,其 bin 宽度取决于 x
的值,其高度取决于变量 y
。图表中的精确值并不重要 - 而是了解如何重现它。
以下代码为每个 measure
创建一个具有两个特征(abatement
和 cost
)的数据框。 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()
搞砸了(将 abatement
和 cost
转换为因子):
data <- data.frame(measure, abatement, cost)
这是一个开始:
with(dplyr::arrange(data,cost),
barplot(width=abatement,height=cost,space=0))
我正在尝试从以下论文 (http://dx.doi.org/10.1016/j.envsci.2011.08.004) 中复制图表图 1 的概念:
这是一个直方图,其 bin 宽度取决于 x
的值,其高度取决于变量 y
。图表中的精确值并不重要 - 而是了解如何重现它。
以下代码为每个 measure
创建一个具有两个特征(abatement
和 cost
)的数据框。 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()
搞砸了(将 abatement
和 cost
转换为因子):
data <- data.frame(measure, abatement, cost)
这是一个开始:
with(dplyr::arrange(data,cost),
barplot(width=abatement,height=cost,space=0))