如何获得全系列的色阶?

时间:2017-10-14 22:53:43

标签: python plotly

我使用plotly生成热图,然后更改色阶。如果热图的值都是正值,则会产生不会覆盖整个颜色范围的色阶。

我该如何解决这个问题?

输入

import pandas as pd
import numpy as np
import plotly.offline as py
import cufflinks as cf
cf.go_offline()

index = range(500)
columns = range(20)
df = pd.DataFrame(np.random.randn(500, 20) + 100, index=index, columns=columns)

fig = df.iplot(kind='heatmap', colorscale='Rdbu', asFigure=True)
fig['data'][0].update(colorscale='Redblue')
py.iplot(fig)

输出

Image

请参阅interactive graph

2 个答案:

答案 0 :(得分:1)

我还没有完全弄明白这一点,但似乎根据数据是由正数,负数还是混合数来选择颜色标准。

在我的情况下,当我的数字都是正数时,我只得到一个红色的颜色。指定最小值和最大值没有帮助。

为了解决这个问题,我在plotly documentation的帮助下定义了自己的色阶。

答案 1 :(得分:0)

一个人可以用Heatmap中的最大值和最小值定义zmax和zmin以获得颜色条的完整范围。在下面的示例中,colobar的范围是0到1。

import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Heatmap(z=[[0.25,0.5,0.75]],zmin=0,zmax=1))
fig.show()