python - 在 plotly Dash 中格式化特定的刻度标签
问题描述
我在热图中绘制了一些地区指标,我想通过在 y 轴上将它们涂成红色来突出显示选定的地区(y 轴中的每个刻度都是一个地区名称)。我知道在 matplotlib 中你可以遍历每个刻度,但在这里我什么也没找到。有什么办法可以做到这一点吗?
我的代码的相关部分是这个:
colors = ['black']*len(ranking)
idx = (ranking[ranking.district.isin(selected_districts)]).index.values
for i in idx:
colors[i] = 'red'
fig.update_yaxes(color=colors)
由于颜色不接受数组,我的方法不起作用。有什么方法可以使用较低级别的 API 来实现这一点吗?我知道这不是一个可重复的示例,但我的问题非常通用且与数据无关,但如果需要,我可以添加一个。
编辑:
工作示例:
import plotly.figure_factory as ff
y = ['1a', '2b', '3c']
x = [1, 2]
z = [[3,4],[5,7],[8,9]]
fig = ff.create_annotated_heatmap(x=x, y=y, z=z)
假设我想让2b
勾号变成红色。我怎么能那样做?
解决方案
首先检查@jayveesea 的答案,这将解决您的问题。然后,如果您可能感兴趣,您可以使用go.Heatmap
完全相同的fig.update_layout
y = ['1a', '2b', '3c']
x = [1, 2]
z = [[3,4],[5,7],[8,9]]
fig = go.Figure(go.Heatmap(x=x, y=y, z=z))
ticktext = [i if i!="2b" else f"<span style='color:red';>{i}</span>" for i in y ]
fig.update_layout(
yaxis=dict(
tickmode='array',
tickvals=y,
ticktext=ticktext
)
)
fig.show()
推荐阅读
- javascript - 无法访问从 React 中的 Web 服务返回的对象值
- node.js - TypeError:无法读取未定义的属性“默认”
- node.js - ObjectionJs andWhereRaw 不是 postgres 和 nodejs 的函数
- python - 在python 3中通过套接字发送文件
- c++ - 在返回时调用 C++ 复制构造函数
- date - Crystal Reports 日期参数格式
- java - Weblogic 和 Spring JMS 配置抛出 java.lang.IllegalStateException
- python - Gensim mallet CalledProcessError:返回非零退出状态
- pyspark - 如何将逗号分隔的字符串从列表中获取到 PySpark 中的查询?
- web - 为什么我的路由器的 WAN 地址与 whatismyip.com 中显示的公共 IP 不同