如何在直方图X轴上以零频率显示值?

时间:2019-05-30 02:54:58

标签: r plotly

我下面有一个简单的数据框d,我想根据其值的频率创建一个直方图。我正在尝试将初始值设置为0,然后通过5在x轴上显示值,但是由于值从1开始然后显示{ {1}}。我发现发生这种情况是因为我的数据帧没有82作为值,所以计数从3停止,从14开始,因为我的数据框包含8作为值,因此计数正常停止。

解决方案可能是2。第一个找到在轴上显示零频率值的方法,第二个找到在轴上没有这些值的情况下设置正确的刻度格式。

我希望对此有一个清晰明确的解决方案作为首选,而不会受到4,5,6,7,8的干扰。

enter image description here

ggplot()

1 个答案:

答案 0 :(得分:0)

有一个技巧,在xaxis布局中使用categoryorder = "arraycategoryarray = x_axis_values。有了这些,您可以手动设置xaxis将包含的值。

我已经修改了一些您的代码示例,但这应该可以解决问题:

# yours data
d = c(1,5,7,5,4,5,6,7,8,9,10,15,13)

# Create the plotly histogram

plot_ly(alpha = 0.9) %>%
  add_histogram(x = as.character(d)
                ) %>%
  # Add titles in plot and axes
  layout(barmode = "overlay",
         margin=list(b=100),
         # Set the xaxis values
         xaxis=list(categoryorder="array",
                    categoryarray = as.character(min(d):max(d))
                    )
        )

在这里输出:

enter image description here