# Plotly Unified Hover: Tick Label vs Hover Label Conflict ## Setup - Plotly chart with `hovermode: "x unified"` - Custom tick labels set via `tickmode: "array"` + `tickvals` + `ticktext` - `hoverformat` set to `"%a %b %d, %H:%M"` on all x-axes (e.g. "Mon Jun 02, 06:00") - Charts rendered as HTML via `plotly.io.to_html` inside a Streamlit iframe ## Desired behaviour - **Tick labels:** date at midnight (`"Mon Jun 02"`), time-only at all other ticks (`"06:00"`, `"12:00"`) - **Hover x-label:** always shows `"Mon Jun 02, 06:00"` format regardless of position ## Observed behaviour When `tickmode: "array"` with explicit `ticktext` is used, Plotly appears to use the `ticktext` string as the hover x-label when the cursor is exactly at a tick position, **overriding `hoverformat`**. At non-tick positions, `hoverformat` applies correctly. Result: - Hovering at `07:00` (non-tick) → `"Mon Jun 02, 07:00"` ✓ - Hovering at `06:00` (tick, `ticktext = "06:00"`) → `"06:00"` ✗ This does **not** affect the 7-day view because all ticks there are full date labels (`"Mon Jun 02"`), so even when ticktext is used for hover it contains the date. ## What was tried 1. **Re-asserting `hoverformat` in every `Plotly.relayout` call** — no effect; Plotly still uses ticktext at tick positions. 2. **Including the date in all non-midnight ticktext** (e.g. `"Mon 06:00"`) — fixes hover consistency but changes tick label appearance, which was not wanted. 3. **`plotly_hover` DOM override** — listening to `plotly_hover` event and overwriting `.hoverlayer .axistext` text content — did not work, likely because the selector does not match the actual DOM element Plotly renders for the unified hover x-label. ## Question Is there a supported way in Plotly.js / Plotly Python to have: - `ticktext` control only the **visual axis tick label** - `hoverformat` (or any other property) control the **unified hover x-label** independently …without modifying tick label text or switching away from `tickmode: "array"`? If DOM manipulation is the right path, what is the correct selector for the x-axis label element inside the unified hover tooltip in `hovermode: "x unified"`? ## Environment - `plotly` Python package (latest) - Plotly.js loaded via CDN (`include_plotlyjs="cdn"`) - Rendered inside a Streamlit `components.html` iframe