Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
颜色比例不匹配plotly(python)中的颜色_Python_Colors_Plotly_Heatmap - Fatal编程技术网

颜色比例不匹配plotly(python)中的颜色

颜色比例不匹配plotly(python)中的颜色,python,colors,plotly,heatmap,Python,Colors,Plotly,Heatmap,我尝试在Python 3.5.3中使用Plotly制作热图。其思想是传递网格(x,y)上每个点的坐标,并根据属性z(z有三个值-0,1,2)为它们着色 但是,在生成的绘图中,颜色完全不匹配。我试着搜索那些情节复杂的文档,但仍然不知道这里出了什么问题 来自 colorscale必须是一个数组,其中包含映射规范化 rgb、rgba、十六进制、hsl、hsv或命名颜色字符串的值。在 最小值,表示最低(0)和最高(1)值的映射 必修的。例如,[[0,'rgb(0,0255)][1,'rgb(255,0,

我尝试在Python 3.5.3中使用Plotly制作热图。其思想是传递网格(x,y)上每个点的坐标,并根据属性z(z有三个值-0,1,2)为它们着色

但是,在生成的绘图中,颜色完全不匹配。我试着搜索那些情节复杂的文档,但仍然不知道这里出了什么问题

来自

colorscale必须是一个数组,其中包含映射规范化 rgb、rgba、十六进制、hsl、hsv或命名颜色字符串的值。在 最小值,表示最低(0)和最高(1)值的映射 必修的。例如,
[[0,'rgb(0,0255)][1,'rgb(255,0,0)]]

在您的示例中,colorscale的范围从0到2。如果将其规格化为最大值1,则应该可以使用

from plotly import offline as py

colors = [[0, 'rgb(0,0,255)'], #blue 
          [0.5, 'rgb(255, 0, 0)'], #red
          [1, 'rgb(188, 188, 188)'] #gray
         ]
z = [[1, 20, 30],
     [20, 1, 60],
     [30, 60, 1]]
data = [dict(z=z,
             type='heatmap',
             colorscale=colors, 
             showscale=True)]

py.plot({'data': data})

非常感谢!另外,如果我理解正确,标准化值之间的间隔应该或多或少相等,对吗?@Boddha:间隔由您决定,取决于您想要得到什么。
from plotly import offline as py

colors = [[0, 'rgb(0,0,255)'], #blue 
          [0.5, 'rgb(255, 0, 0)'], #red
          [1, 'rgb(188, 188, 188)'] #gray
         ]
z = [[1, 20, 30],
     [20, 1, 60],
     [30, 60, 1]]
data = [dict(z=z,
             type='heatmap',
             colorscale=colors, 
             showscale=True)]

py.plot({'data': data})