当前位置: 首页 > 知识库问答 >
问题:

具有不同箱子宽度的直方图

农弘毅
2023-03-14

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

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

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

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

共有2个答案

牛智志
2023-03-14

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

data2 <- data[ order(cost), ]

或者您可以使用dplyr包及其排列函数。

卫飞鹏
2023-03-14

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

您的cbind()正在搞砸事情(将减排成本转换为因素):

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

这是一个开始:

with(dplyr::arrange(data,cost),
     barplot(width=abatement,height=cost,space=0))
 类似资料:
  • 在Matplotlib中创建堆叠直方图时,我注意到箱宽缩小了。在这个简单的例子中: 我得到以下输出: 请注意,左侧的直方图在每个存储区之间都有行间距,即使左侧和右侧直方图都使用相同的存储区。 有没有办法纠正这种行为?我想在左边的直方图使用完整的箱子宽度,这样相邻的箱子共享一条边。

  • 我花了一些时间在互联网上寻找这个问题的答案,我也试着在SO的所有地方寻找答案,但我想我没有正确的术语……请原谅,如果这是某个已知问题的重复,我很乐意删除我的帖子,改为引用该帖子! 无论如何,我试图在Matplotlib中的同一图形上绘制两个直方图。我的两个数据源是包含 500 个元素的列表。要说明我面临的问题,请参阅下图: 如您所见,在默认参数下,直方图具有不均匀的条块大小,即使条块的数量是相同的

  • 我用matplotlib生成直方图。 我需要箱子的宽度不相等,因为我对最低的条柱最感兴趣。现在我正在这样做: 这创建了我想要的(前5个条柱的宽度为10,其余50条箱的宽度),但前五个条柱当然比后一个条柱窄,因为所有条柱都显示在同一轴上。 有没有办法影响x轴或直方图本身,这样我就可以在前5个箱之后打破刻度,这样所有箱都显示为等宽? (我意识到这将产生一个扭曲的视图,我对此很好,尽管我不介意在轴的两个

  • 为了生成此图,我执行了以下操作: 但是,正如您所注意到的,我想绘制每个数据点的相对频率的直方图,其中只有3个具有不同大小的条柱: bin1 = 0.03 - bin2 = 0.3 - bin3=2- 直方图看起来很难看,因为最后一个面元的大小相对于其他面元来说非常大。如何修复直方图?我想改变箱子的宽度,但不想改变每个箱子的范围。

  • 我正在尝试在 matplotlib 中绘制具有多个数据序列的直方图。 我有不相等间隔的箱子,但是我想要每个箱子得到相同的宽度。所以我这样使用属性< code>width: 结果是: 我怎样才能去掉两个系列的两个对应箱子之间的边距?一、 e.如何为每个箱子分组不同系列的钢筋? 谢谢

  • 我正在尝试绘制一个只有线条但笔画宽度不同的对象。这可能吗? 我的尝试: 不成功,最后一个笔画宽度用于整个< code >路径。