plot.ly热图colorcale无法正常工作

时间:2016-01-12 18:52:32

标签: plotly

我正在尝试获取我提前生成的cbrewer Reds colormap。 但是,当我尝试使用它时,我仍然会得到一些默认的colormap。我究竟做错了什么? 这是情节:https://plot.ly/~smirnod1/54/confusion-matrix/

这是一个代码示例:

import plotly.plotly as py
from plotly.graph_objs import *
py.sign_in('username', 'api_key')
data = Data([
    Heatmap(
        x=['Not Churned', 'Churned'],
        y=['Churned', 'Not Churned'],
        z=[[128, 355], [2827, 23]],
        autocolorscale=False,
        colorscale=[[1, 'rgb(255,245,240)'], [417, 'rgb(254,224,210)'], [834, 'rgb(252,187,161)'], [1250, 'rgb(252,146,114)'], [1667, 'rgb(251,106,74)'], [2083, 'rgb(239,59,44)'], [2500, 'rgb(203,24,29)'], [2916, 'rgb(165,15,21)'], [3333, 'rgb(103,0,13)']],
        name='y',
        xsrc='smirnod1:55:b1dfa9',
        ysrc='smirnod1:55:b2cd71',
        zsrc='smirnod1:55:a9af99,9984f6'
    )
])
layout = Layout(
    barmode='overlay',
    height=400,
    title='Confusion Matrix',
    width=400,
    xaxis=XAxis(
        title='Predicted value',
        titlefont=dict(
            color='#7f7f7f',
            size=18
        )
    ),
    yaxis=YAxis(
        title='True Value',
        titlefont=dict(
            color='#7f7f7f',
            size=18
        )
    )
)
fig = Figure(data=data, layout=layout)
plot_url = py.plot(fig)

1 个答案:

答案 0 :(得分:3)

色阶域项目必须位于01之间的缩放坐标中。

要控制色阶域,请使用zminzmax

例如,

data = Data([
    Heatmap(
        x=['Not Churned', 'Churned'],
        y=['Churned', 'Not Churned'],
        z=[[128, 355], [2827, 23]],
        zmin=1,
        zmax=3333,
        colorscale=[[0, 'rgb(255,245,240)'], [0.2, 'rgb(254,224,210)'], [0.4, 'rgb(252,187,161)'], [0.5, 'rgb(252,146,114)'], [0.6, 'rgb(251,106,74)'], [0.7, 'rgb(239,59,44)'], [0.8, 'rgb(203,24,29)'], [0.9, 'rgb(165,15,21)'], [1, 'rgb(103,0,13)']],
        name='y',
        xsrc='smirnod1:55:b1dfa9',
        ysrc='smirnod1:55:b2cd71',
        zsrc='smirnod1:55:a9af99,9984f6'
    )
])

应该有用。