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