绘制等高线图色标粒度与自定义色标不匹配

时间:2018-11-20 17:07:23

标签: python plotly

我正在尝试创建一个等高线图,其颜色从黑色(值为-1)到浅灰色(为0)到红色(为1)。

我创建了一个自定义的色标,如下所示:我为每0.1的增量(从-1到20的20增量)指定了颜色

[ # Black -> Light grey
        [0, 'rgb(0, 0, 0)'],[0.05, 'rgb(0, 0, 0)'],
        [0.05, 'rgb(20, 20, 20)'],[0.1, 'rgb(20, 20, 20)'],
        [0.1, 'rgb(40, 40, 40)'],[0.15, 'rgb(40, 40, 40)'],
        [0.15, 'rgb(60, 60, 60)'],[0.2, 'rgb(60, 60, 60)'],
        ...
        [0.4, 'rgb(160, 160, 160)'],[0.45, 'rgb(160, 160, 160)'],
        [0.45, 'rgb(180, 180, 180)'],[0.5, 'rgb(180, 180, 180)'],
         # Ligt Grey -> Red
        [0.5, 'rgb(187, 162, 162)'],[0.55, 'rgb(187, 162, 162)'],
        [0.55, 'rgb(194, 144, 144)'],[0.6, 'rgb(194, 144, 144)'],
        [0.6, 'rgb(201, 126, 126)'],[0.65, 'rgb(201, 126, 126)'],
        ...
        [0.9, 'rgb(243, 18, 18)'],[0.95, 'rgb(243, 18, 18)'],
        [0.95, 'rgb(255, 0, 0)'],[1, 'rgb(255, 0, 0)']]

但是,当我输出绘图时,我的色标的增量为0.2,因此似乎并未显示我指定的所有颜色。 这就是我得到的

enter image description here

这是显示绘图的代码的一部分,我不确定需要更多信息。

data = [go.Contour(z=df.values.tolist(),x=list(df.columns),y=list(df.index),colorscale = colScale,zmin=-1,zmax=1)]
fig = go.Figure(data=data,layout=layout)
py.iplot(fig,contours= contour,filename='contPlot'+column)

我正在寻找一种显示更多颜色的方法。有没有一种方法可以显示要在色标中插值到指定颜色之间的“拆分”数量? 谢谢

2 个答案:

答案 0 :(得分:1)

这些参数与contours属性相关:

go.Contour(
    z=df.values.tolist(),
    x=list(df.columns),
    y=list(df.index),
    colorscale=colScale,
    contours=dict(
        size=0.1,
        start=-1,
        end=1
    )
)

您也不必自己对色阶进行分级,只应使用基色:

[
  [0, 'rgb(0, 0, 0)'],[0.5, 'rgb(187, 162, 162)'],
  [0.5, 'rgb(187, 162, 162)'],[1, 'rgb(255, 0, 0)']
]

答案 1 :(得分:1)

我最终使用ncontours改变了色标中的颜色数量。

data = go.Contour(
    z=df.values.tolist(),
    x=list(df.columns),
    y=list(df.index),
    colorscale = colScale,
    zmin=-1,
    zmax=1,
    ncontours=25)