holoviz / holoviz/hvplot

hvPlot Bolded Grey Multi-index

Open
#1,709 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
1.4k
Forks
124
Avg merge
1d 18h
Merged PRs (30d)
1

Description

Software Version Info

```plaintext
hvplot: 0.11.3
```

#### Description of expected behavior and the observed behavior

This is an issue with hvplot's bar rendering that I mentioned to the core developers in the 12/17/25 Holoviz Office Hours meeting.

The issue was the multi-index, primary index showing up in the dashboard with a bolded grey font. It was showing up fuzzy in our app and I was asked to fix it. But I couldn't figure it out. When I moved to Bokeh it was easily remedied.

My feelings aren't hurt if folks don't think its worth the time to fix or improve. Maybe moving to Bokeh to customize styling is the right path. In hindsight removing the label altogether through `display(chart.opts(multi_level=False))` would have served my specific needs, but I didn't know it at the time.

#### Complete, minimal, self-contained example code that reproduces the issue

```python
import pandas as pd
import numpy as np
import holoviews as hv
import hvplot.pandas

# DataFrame: Scenario, Asset, Value, Value_formatted
data = [
{"Scenario": "Default - High PV", "Asset": "PV", "Value": 120.0},
{"Scenario": "Default - High PV", "Asset": "Battery", "Value": 300.0},
{"Scenario": "Default - High PV", "Asset": "Gen-set", "Value": 50.0},
{"Scenario": "Alt - No PV", "Asset": "PV", "Value": 0.0},
{"Scenario": "Alt - No PV", "Asset": "Battery", "Value": 200.0},
{"Scenario": "Alt - No PV", "Asset": "Gen-set", "Value": 120.0},
{"Scenario": "Battery-Heavy", "Asset": "PV", "Value": 80.0},
{"Scenario": "Battery-Heavy", "Asset": "Battery", "Value": 600.0},
{"Scenario": "Battery-Heavy", "Asset": "Gen-set", "Value": 20.0},
]
df = pd.DataFrame(data)
unit_map = {"PV": "kWdc", "Battery": "kWh", "Gen-set": "kW"}
df['Value_formatted'] = df.apply(lambda r: f"{r['Value']:.1f} {unit_map[r['Asset']]}", axis=1)
# Preserve scenario display order
df['Scenario'] = pd.Categorical(df['Scenario'], categories=list(df['Scenario'].unique()), ordered=True)

chart = df.hvplot.bar(
x="Scenario", y="Value", by="Asset",
rot=45, hover=True, hover_cols=["Value_formatted"],
title="Grouped bar: Scenario x Asset",
responsive=True,
height=300,
xlabel="",
)

display(chart)

```

#### Stack traceback and/or browser JavaScript console output

#### Screenshots or screencasts of the bug in action

- [ ] I may be interested in making a pull request to address this

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.