You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly柱状图X轴未显示全部输入值问题求助

Why Plotly Bar Chart X-Axis Only Shows Integer-Like Berth Values?

Let's break down why you're seeing only integer berth labels (like 02, 08) and missing ones with letters (01E, 01W), plus how to fix it.

Root Cause

The issue boils down to how Plotly interprets your X-axis data. Your Berth values are a mix of strings with letters (e.g., "01E") and strings that look like integers (e.g., "02"). By default, Plotly tries to auto-detect the axis type:

  • It treats integer-like strings as numerical values (int/float)
  • It treats letter-containing strings as categorical values
    Since numerical axes prioritize numerical ticks, the categorical (lettered) values get excluded from the visible X-axis ticks.

Fixes to Show All Berth Labels

You have two straightforward ways to resolve this:

1. Force the X-axis to be a categorical axis

Tell Plotly explicitly to treat all Berth values as categories, regardless of their format. Add type='category' to your xaxis configuration:

trace1 = Bar(x = tracedata1.reset_index()['Berth'], y = tracedata1)
data1 = [trace1]
layout1 = Layout(
    xaxis = dict(
        tickangle = -45,
        type='category'  # This ensures all labels are treated as categories
    )
)
fig1 = dict(data = data1, layout = layout1)
iplot(fig1)

2. Ensure your Berth column is explicitly string-typed

Sometimes Pandas might infer integer-like Berth values as numerical types (even if they're part of an object-dtype index/column). Force all values to strings to keep consistency:

# Convert the Berth index to string type first
tracedata1.index = tracedata1.index.astype(str)

# Then create your chart as before (adding type='category' still helps!)
trace1 = Bar(x = tracedata1.reset_index()['Berth'], y = tracedata1)
data1 = [trace1]
layout1 = Layout(
    xaxis = dict(
        tickangle = -45,
        type='category'
    )
)
fig1 = dict(data = data1, layout = layout1)
iplot(fig1)

Why This Works

Setting type='category' tells Plotly to render every unique value in your Berth column as a distinct tick on the X-axis, no matter if it has letters or looks like a number. Explicitly converting to strings ensures Pandas doesn't mix data types, which helps Plotly parse the values correctly.

内容的提问来源于stack exchange,提问作者Aasheet Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:45:21