【问题标题】:Set X Axis Range on Plotly Frequency Graph在 Plotly 频率图上设置 X 轴范围
【发布时间】:2017-12-26 17:56:09
【问题描述】:

考虑下图:

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')

我想用这张图制作一个类似的图,其中值 7 和 9 以频率为零的频率列出。有没有办法获得像seq(0, 10, 1) 这样的序列的频率计数,其中 7 和 9 会显示为 0 的频率,或者有没有一种方法可以将我的绘图图上的 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))

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

我希望我想要的输出如下所示:

请注意,这只是一个小样本,我的实际数据会大得多。因此,像循环遍历数据并计算每个数字这样的操作会太慢。

【问题讨论】:

    标签: r plotly frequency


    【解决方案1】:

    一个简单的解决方案是将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')
    

    【讨论】:

    • 谢谢!我不知道为什么我想不到那个大声笑。有时我会想太多。
    猜你喜欢
    • 1970-01-01
    • 2018-11-02
    • 2016-10-19
    • 2019-09-06
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    相关资源
    最近更新 更多