【发布时间】:2021-02-01 17:25:51
【问题描述】:
我的颜色条有 17 种不同颜色的自定义色阶,我的数据是 29x29 矩阵,值范围为 0-16。我希望我的颜色条为矩阵中的每个值显示所有 17 种颜色,然后颜色条上的刻度将为 0,1,2,3...16,并且每个刻度都与一种颜色相关联。事实上,我的颜色条显示了所有其他刻度,以及大约一半的颜色。如何更改它并在颜色栏上显示每种颜色和刻度?
这是我的测试数据:
import numpy as np
import plotly.graph_objects as go
#custom colorscale
colors=[(0.0,'#170d33' ), (0.0588, '#170d33'),
(0.0588, '#2f4b7c'),(0.118,'#2f4b7c'),
(0.118,'#2f4b7c'),(0.177,'#2f4b7c'),
(0.177,'#665191'),(0.236,'#665191'),
(0.236,'#875296'),(0.295,'#875296'),
(0.295,'#a05195'),(0.354,'#a05195'),
(0.354,'#d45087'),(0.413,'#d45087'),
(0.413,'#f95d6a'),(0.471,'#f95d6a'),
(0.471,'#ff7c43'),(0.53,'#ff7c43'),
(0.53,'#ffa600'),(0.589,'#ffa600'),
(0.589,'#ffc332'),(0.648,'#ffc332'),
(0.648,'#fff629'),(0.707,'#fff629'),
(0.707,'#f7ffbd'),(0.765,'#f7ffbd'),
(0.765,'#d2ffbd'),(0.824,'#d2ffbd'),
(0.824,'#a2ffc9'),(0.883,'#a2ffc9'),
(0.883,'#85ffd4'),(0.942,'#85ffd4'),
(0.942,'#1cfff0'),(1.0,'#1cfff0')]
#random matrix illustrating my data
mx=np.random.uniform(low=0., high=16, size=(29,29) )
fig=go.Figure()
fig.add_trace(go.Contour(z=mx, coloraxis='coloraxis'))
fig.update_layout(height=800, width=1000, coloraxis=dict(colorscale=colors),
showlegend=False, font=dict(size=24), font_family='Open Sans')
fig.show()
编辑:我认为如果我提供足够的颜色(相同数量或更多的值),颜色条会自动配置这样的颜色条 - 一个颜色一个勾号。不是真的,它接缝。 这是矩阵值 0-10 的另一个测试,颜色条显示我想要的。如果没有明确的方法来配置颜色条的颜色值,也许我应该提供更多颜色?
【问题讨论】:
-
我没有在图表中看到任何不在颜色图例中的颜色,所以我的假设是它不是 plotly 的问题,但可能更多的是您的数据问题
-
@elizevin 你能分享一些关于
"show every color"的细节吗?听起来您的目标是将一种特定颜色指定为一个特定数字。这听起来也具有分类的性质。而且不是数字的。或连续。go.Contour图 是。 -
@elizevin 如果我的上述假设是错误的,可能有办法在连续轴上显示
"colors for every value in the matrix"。 -
@vestland 我认为这种方法对这个特定问题很有用。