r - 如何在绘图直方图 x 轴上显示频率为零的值?
问题描述
我有下面的简单数据框d
,我想根据其值的频率创建一个直方图。我试图将初始值设置为0
,然后在 x 轴上显示值,5
但这些值似乎都不起作用,因为值从开始1
,然后显示8
。我发现发生这种情况是因为我的数据框没有值,所以计数停止2
并从直到开始,因为我的数据框包含值,所以计数正常停止。3
1
4
8
4,5,6,7,8
解决方案可能是 2。第一个找到在轴上显示频率为零的值的方法,第二个是在轴上没有这些值的情况下设置正确的刻度格式。
ggplot()
我更愿意在没有干扰的情况下将此作为首选的明确的情节解决方案。
d<-data.frame(c(1,5,7,5,4,5,6,7,8,9,10,15,13))
x <- list(
tick0=0,
dtick=5
)
# Create the plotly histogram
plot_ly(alpha = 0.9) %>%
add_histogram(x = as.factor(d[,1]),source="subset") %>%
# Add titles in plot and axes
layout(barmode = "overlay",xaxis=x,margin=list(b=100))
解决方案
有一个技巧,在 xaxis 布局中使用categoryorder = "array"
and 。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))
)
)
这里的输出:
推荐阅读
- javascript - '!!~' 在 Javascript 中是做什么的?
- java - 使用 Ant 的 Javafx 构建错误
- docker - 在带有绑定挂载的 docker 容器中使用 ionice 运行命令是否有意义
- c# - 如何使用设备指南针将对象或模型放置在统一 ARkit 中?
- angular - 角动画查询样式空页
- python - 将重复变量插入字符串
- mysql - 使用 r 与 mysql 合并表
- java - Spring Data JPA findById() throwing ClassCastException
- angularjs - 如何为选择的角度设置默认值
- html - 如何从选择(多选)MVC RAZOR 向模型发送值