直方图丢失数据

时间:2019-04-30 19:38:01

标签: r histogram plotly

在一种情况下,我试图创建一个包含很多重复值的直方图。数据点之一未在图中表示。这是我发现的最小,最简单的子集,仍然可以重现我的问题。

cleanVar <- c(rep(1,9),1.25,1.5)
plot_ly(data.table(cleanVar),
x = ~cleanVar,
type = "histogram")

上图仅显示两个条形图。一个以高度9的1为中心,另一个以高度1的1.2为中心。 同样奇怪的是,尽管悬停区域涵盖了[.9,1.1],但第一栏的悬停仍显示为“ 1”,尽管覆盖范围[1.1,1.3],悬停仍显示了“ 1.25”。 / p>

如果我们将1更改为仅重复八次cleanVar <- c(rep(1,8),1.25,1.5),以使直方图中的总值达到10,它的效果会更好,但是根据它的创建,三个bin的宽度为.25悬停,但它们本身在图形上只有0.2宽。

密谋在做什么?如何正确显示3个高度分别为9,1、1和0.25的纸箱? layout()中的合并选项无效。

1 个答案:

答案 0 :(得分:0)

默认情况下,按情节使用以下过程定义垃圾箱:

开始:

  

设置x轴仓的起始值。默认值为最小数据值,如有必要,请向下移动以获得良好的舍入值并删除不明确的bin边缘。例如,如果大多数数据是整数,则将bin边移0.5向下,因此size为5时,默认start为-0.5,因此很明显0-4位于第一个bin为5-9,第二个为bin,但是连续数据的开头为0,bin [0,5),[5,10)等开头。日期的行为类似,start应该是日期字符串。对于类别数据,start基于类别序列号,默认为-0.5。如果多个非重叠直方图共享一个子图,则将精确使用第一个显式start,而所有其他显式size会下移(如有必要),以与该整数相差整数个bin。

结束:

  

设置x轴仓的最终值。最后一个垃圾箱可能不会结束   恰好在此值上,我们将bin边缘从以下位置增加start   end,直到达到或超过start。默认为最大数据   值。像end一样,对于日期使用日期字符串,对于类别   数据library(listviewer) schema(jsonedit = interactive()) 基于类别序列号。

您可以通过以下方式找到此信息:

x

导航如下:对象►迹线►直方图►属性►xbins►开始

要避免默认行为,只需将factor变量设置为library(plotly) library(data.table) cleanVar <- c(rep(1, 9), 1.25, 1.5) plot_ly(data.table(cleanVar), x = ~factor(cleanVar), type = "histogram")

True

结果:

Result