我下面有一个简单的数据框d
,我想根据其值的频率创建一个直方图。我正在尝试将初始值设置为0
,然后通过5
在x轴上显示值,但是由于值从1
开始然后显示{ {1}}。我发现发生这种情况是因为我的数据帧没有8
和2
作为值,所以计数从3
停止,从1
到4
开始,因为我的数据框包含8
作为值,因此计数正常停止。
解决方案可能是2。第一个找到在轴上显示零频率值的方法,第二个找到在轴上没有这些值的情况下设置正确的刻度格式。
我希望对此有一个清晰明确的解决方案作为首选,而不会受到4,5,6,7,8
的干扰。
ggplot()
答案 0 :(得分:0)
有一个技巧,在xaxis布局中使用categoryorder = "array
和categoryarray = 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))
)
)
在这里输出: