holoviz / holoviz/hvplot

Holoviews default colormap is not being applied

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

Description

#### ALL software version info
(this library, plus any other relevant software, e.g. bokeh, python, notebook, OS, browser, etc should be added within the dropdown below.)

Software Version Info

pyproject.toml

```toml
[project]
name = "hv-colormap-test"
version = "0.1.0"
requires-python = ">=3.13"
dependencies = [
"hvplot>=0.12.2",
"jupyter>=1.1.1",
"xarray>=2025.12.0",
]
```

output of `uv pip list`
```plaintext
Package Version
------------------------- -----------
anyio 4.12.1
argon2-cffi 25.1.0
argon2-cffi-bindings 25.1.0
arrow 1.4.0
asttokens 3.0.1
async-lru 2.1.0
attrs 25.4.0
babel 2.17.0
beautifulsoup4 4.14.3
bleach 6.3.0
bokeh 3.8.2
certifi 2026.1.4
cffi 2.0.0
charset-normalizer 3.4.4
colorcet 3.1.0
comm 0.2.3
contourpy 1.3.3
debugpy 1.8.19
decorator 5.2.1
defusedxml 0.7.1
executing 2.2.1
fastjsonschema 2.21.2
fqdn 1.5.1
h11 0.16.0
holoviews 1.22.1
httpcore 1.0.9
httpx 0.28.1
hvplot 0.12.2
idna 3.11
ipykernel 7.1.0
ipython 9.9.0
ipython-pygments-lexers 1.1.1
ipywidgets 8.1.8
isoduration 20.11.0
jedi 0.19.2
jinja2 3.1.6
json5 0.13.0
jsonpointer 3.0.0
jsonschema 4.26.0
jsonschema-specifications 2025.9.1
jupyter 1.1.1
jupyter-client 8.8.0
jupyter-console 6.6.3
jupyter-core 5.9.1
jupyter-events 0.12.0
jupyter-lsp 2.3.0
jupyter-server 2.17.0
jupyter-server-terminals 0.5.4
jupyterlab 4.5.3
jupyterlab-pygments 0.3.0
jupyterlab-server 2.28.0
jupyterlab-widgets 3.0.16
lark 1.3.1
linkify-it-py 2.0.3
markdown 3.10.1
markdown-it-py 4.0.0
markupsafe 3.0.3
matplotlib-inline 0.2.1
mdit-py-plugins 0.5.0
mdurl 0.1.2
mistune 3.2.0
narwhals 2.15.0
nbclient 0.10.4
nbconvert 7.16.6
nbformat 5.10.4
nest-asyncio 1.6.0
notebook 7.5.3
notebook-shim 0.2.4
numpy 2.4.1
packaging 26.0
pandas 3.0.0
pandocfilters 1.5.1
panel 1.8.6
param 2.3.1
parso 0.8.5
pexpect 4.9.0
pillow 12.1.0
platformdirs 4.5.1
prometheus-client 0.24.1
prompt-toolkit 3.0.52
psutil 7.2.1
ptyprocess 0.7.0
pure-eval 0.2.3
pycparser 3.0
pygments 2.19.2
python-dateutil 2.9.0.post0
python-json-logger 4.0.0
pyviz-comms 3.0.6
pyyaml 6.0.3
pyzmq 27.1.0
referencing 0.37.0
requests 2.32.5
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rfc3987-syntax 1.1.0
rpds-py 0.30.0
send2trash 2.1.0
setuptools 80.10.2
six 1.17.0
soupsieve 2.8.3
stack-data 0.6.3
terminado 0.18.1
tinycss2 1.4.0
tornado 6.5.4
tqdm 4.67.1
traitlets 5.14.3
typing-extensions 4.15.0
tzdata 2025.3
uc-micro-py 1.0.3
uri-template 1.3.0
urllib3 2.6.3
wcwidth 0.5.0
webcolors 25.10.0
webencodings 0.5.1
websocket-client 1.9.0
widgetsnbextension 4.0.15
xarray 2025.12.0
xyzservices 2025.11.0
```

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

Changing the default colormap through `hv.opts.defaults(hv.opts.Image(cmap=...))` does not affect the default colormap. In the documentation, I couldn't find another way to set the default. Setting the defaults for e.g. line plots using `hv.opts.Curve` works.

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

```python
# code goes here between backticks
import xarray as xr
import numpy as np

import holoviews as hv
import hvplot.xarray

hv.extension("bokeh")

hv.opts.defaults(
hv.opts.Image(cmap="viridis"),
)

arr = xr.DataArray(
np.random.default_rng().random((10, 10)),
coords=[("x", np.linspace(0, 1, 10)), ("y", np.arange(10))],
name="example",
)

arr.hvplot.image()
```

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

N/A

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

With the MWE code, the plot is using the default blue colormap:
Image

Note that normal hv plotting applies the colormap correctly:

Image

We can also check that defaults set in the same way are applied for line plots:

Image

I also tried `hv.config(default_cmap="viridis", default_gridded_cmap="viridis", default_heatmap_cmap="viridis")`, but it did not help either. `hv.config` shows the `default_cmap` unchanged after setting it with `hv.opts.defaults`, I'm not sure what is the relationship between `hv.config` and `hv.opts.defaults`.

- [ ] 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.