如何使Plotly坐标轴仅显示整数

17

我在一个闪亮应用程序中使用了 Plotly 条形图,将因子水平显示在 X 轴上。但对于某些输入(2、3、4),它会显示像 1.5、2.5 等标记(请参见图像)。那么问题来了:我是否可以以某种方式使 X 轴标记仅显示整数值?

示例

3个回答

16

1
谢谢。顺便恭喜你回答了1000个问题! - vladli
12
看起来要适当处理这个问题更加复杂。使用 tickformat 会经常导致标签重复(即,1 和 .75 条目都将显示为 1)。 - Kenneth M. Kolano

6

plotly 正在猜测您的轴类型,因为您的聚类标签是数字。您可以在绘图之前/之时将 x 变量强制转换为因子来解决此问题。

library(plotly)
library(dplyr)
mtcars_by_gear <- count(mtcars,gear)

plot_ly(mtcars_by_gear,
        x=~as.factor(gear), 
        y=~n)

如果您想进一步控制轴标签,可以使用layout()函数的刻度参数,但在您的情况下,因子选项似乎更好。

plot_ly(mtcars_by_gear,
        x=~gear, 
        y=~n, 
        type="bar") %>% 
  layout(xaxis=list(tickvals=~gear,ticktext=~gear))

0
如果使用Python:
fig = px.bar(df, x='x', y='y', title="Count")
fig.update_layout( xaxis={
    'range': [df['x'].min(), df['x'].max()], 
    'tickvals': [*range(int(df['x'].min()), int(df['x'].max()))]
})
fig.show()

也可以强制将轴设为分类轴。
fig = px.bar(df, x='x', y='y', title="Count")
fig.update_xaxes(type='category')
fig.show()

在你的代码中,tickvals 不会包括最大值。在范围内将最大值加1。 - undefined

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