Plotly.js - 有没有办法绘制垂直颜色条,最小值在顶部,最大值在底部?

问题描述 投票:0回答:1

我正在使用 plotly.js 来绘制科学数据。

我正在尝试反转色标方向。 绘制垂直颜色条,最大值在顶部,最小值在底部。

是否可以反转此功能? (顶部的最小值和底部的最大值)

我试过“reversescale”功能,但它也会反转色阶。 请帮助。

例子

1

javascript plotly plotly.js
1个回答
0
投票

有点hack,但我没有找到任何其他方法来做到这一点。基本上你可以用你想要的颜色条的属性创建一个虚拟图。在这个例子中,我使用了一个空的散点图。请注意,您需要手动插入刻度值才能正常工作。

import plotly.graph_objects as go
import numpy as np
 
data = np.array([[1,2,3,4,5],
     [3,4,5,6,7],
     [7,8,9,6,4],
     [3,7,2,4,2]])

# Ticks to appear in the colorbar 
tickvals = [2, 5, 8]
colorscale="Viridis"

# Main plot 
trace = go.Contour(z = data, colorscale=colorscale, colorbar_tickvals=tickvals,  showscale=False)

# Dummy plot for colorbar
colorbar_trace=go.Scatter(
            x=[None],
            y=[None],
            mode='markers',
            marker=dict(
                colorscale=colorscale+'_r', 
                cmin=np.min(data),
                cmax=np.max(data),
                colorbar=dict(tickvals=tickvals, ticktext=tickvals[::-1])),
            hoverinfo='none'
            )

fig = go.Figure(data = [trace, colorbar_trace])
fig.show()

Example of Inverted Colorbar

© www.soinside.com 2019 - 2024. All rights reserved.