我使用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)
输出
答案 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()