在 Plotly 频率图中设置 X 轴范围

3
请看下图:

考虑以下图表:

library(dplyr)
library(plotly)

x <- c(1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 5, 6, 8, 8, 8, 10, 10)
y <- as.data.frame(table(x))

y %>%
plot_ly(x = ~ x,
        y = ~ Freq,
        type = 'bar')

Frequency Graph

我想要制作一张类似的图表,其中数值为7和9的频率为零。是否有一种方法可以得到像seq(0, 10, 1)这样的序列的频率计数,其中7和9将出现为0频率,或者是否有一种方法可以设置我的plotly图表的x轴从0到10,即使我的数据中没有所有数字?

我已经尝试过了。

y %>%
plot_ly(x = ~ x,
        y = ~ Freq,
        type = 'bar') %>%
layout(xaxis = list(autotick = FALSE, tick0 = 0, tickd = seq(0, 10, 1))

并且也
layout(xaxis = list(autotick = FALSE, tick0 = 0, tickd = c(0,10))

但似乎两者都没有改变任何东西。

我希望我的期望输出看起来像这样:

Desired Output

请注意,这只是一个小示例,我的实际数据将会更大。因此,像遍历数据并计算每个数字那样的做法将会太慢。

1个回答

4
一个简单的解决方案是将 x 转换为一个具有1到10个级别的因子。
library(dplyr)
library(plotly)

x <- c(1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 5, 6, 8, 8, 8, 10, 10)
x <- factor(x, levels=1:10)

y <- as.data.frame(table(x))

y %>%
plot_ly(x = ~ x,
        y = ~ Freq,
        type = 'bar')

谢谢!我不知道为什么我想不到那个,哈哈。有时候我会过度思考。 - Dustin Knight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接