Skip to main content
 首页 » 编程设计

python之如何在 plotly 中为 ticktext 着色

2025年05月04日14shangdawei

我想根据各自的字符串(基于字典)在我的 plotly xaxis 中用不同的颜色显示我的 ticktexts。 是否可以通过 HTML 编码来 plotly 执行此操作?

 ticktext = ['<font color="red">{}</font> '.format(x) for x in ticktexts] 

不起作用,它将 html 字符串提供给标签。

请您参考如下方法:

使用 LaTeX 的一点解决方法可以在这里帮助你(抱歉@Iwileczek,我偷了你的例子,希望你不介意)因为 plotly 有完整的 latex support :

def color(color, text): 
    s = '$\color{' + str(color) + '}{' + str(text) + '}$' 
    return s 
 
animals=['giraffes', 'orangutans', 'monkeys'] 
 
colors = ['red', 'green', 'yellow', 'blue'] 
ticks = [5, 10, 15, 20] 
keys = dict(zip(ticks, colors)) 
 
fig = go.Figure([go.Bar(x=animals, y=[20, 14, 23])]) 
ticktext = [color(v, k) for k, v in keys.items()] 
print(ticktext) 
fig.update_layout( 
yaxis=dict(tickmode='array', ticktext=ticktext, tickvals=ticks) 
) 
fig.show() 


2021 年 3 月更新:

如果您不想在输出中使用 MathJax 渲染的 LaTex 字体,请使用带有 HTML 样式的@Dapcer 的解决方案:

def color(color, text): 
    return f"<span style='color:{str(color)}'> {str(text)} </span>" 

fig.update_layout(font=dict(family="Times New Roman") [...] 示例: