plotly.py icon indicating copy to clipboard operation
plotly.py copied to clipboard

ValueError when setting zmin, zmax for rgb image

Open neili02 opened this issue 6 years ago • 1 comments

There seem to be a validation error bug for setting zmin, zmax for rgb images. It appears the validation code expects a tuple or list of size 4 ( as would be the case for rgba) and not size 3 as should be the case for rgb.

im= np.random.randint(256,size=(50,50,3),dtype=np.uint8) fig = go.Figure(go.Image(z=im,colormodel='rgb',zmin=[10,10,10],zmax=[100,100,100])) fig.show()

Results in the following error:

File "C:\Users\NA\Anaconda3\lib\site-packages_plotly_utils\basevalidators.py", line 283, in raise_invalid_val

valid_clr_desc=self.description(),

ValueError: Invalid value of type 'builtins.tuple' received for the 'zmax' property of image Received value: [100, 100, 100]

The 'zmax' property is an info array that may be specified as:

* a list or tuple of 4 elements where:

(0) The 'zmax[0]' property is a number and may be specified as: - An int or float (1) The 'zmax[1]' property is a number and may be specified as: - An int or float (2) The 'zmax[2]' property is a number and may be specified as: - An int or float (3) The 'zmax[3]' property is a number and may be specified as: - An int or float

neili02 avatar Dec 04 '19 19:12 neili02

Bug still here, can reproduce with the following, replacing num_elements from 4 to 3:

import plotly.graph_objects as go
import numpy as np

num_elements = 4
vmin, vmax = 0, 100

fig = go.Figure(
    data=go.Image(
        z=np.random.randint(vmin, vmax, size=(32, 32, 3)),
        zmin=[vmin] * num_elements,
        zmax=[vmax] * num_elements,
        colormodel="rgb",
    )
)
fig.show()

Paul-Aime avatar Jul 11 '22 14:07 Paul-Aime