如何使用 plotly.graph_object 在仪表图上添加图例
How to add legends on gauge chart using plotly.graph_object
我创建了一个仪表图,但我想提及标签的含义,例如 0 = 低和 5 = 高。这意味着我需要两个标签(左边低,右边高)。
我的图表如下所示:
代码:
import plotly.graph_objects as go
fig = go.Figure(go.Indicator(
domain = {'x': [0, 1], 'y': [0, 1]},
value = 4.3,
mode = "gauge+number+delta",
title = {'text': "General satisfaction"},
delta = {'reference': 2.5},
gauge = {'axis': {'range': [None, 5], 'tickwidth': 1,'tickcolor': "black"},
'bar': {'color': "MidnightBlue"},
'steps' : [
{'range': [0, 1], 'color': "DarkTurquoise"},
{'range': [1, 2], 'color': "MediumTurquoise"},
{'range': [2, 3], 'color': "Turquoise"},
{'range': [3, 4], 'color': "PaleTurquoise"},
{'range': [4, 5], 'color': "lightcyan"}],
'threshold' : {'line': {'color': "brown", 'width': 4}, 'thickness': 0.75, 'value': 4.8}}))
fig.show()
在这种情况下有什么参数可以帮助我吗?
- graph objects indicator tickmode、tickvals 和 ticktext
- 如下所示
fig.update_traces(
gauge={
"axis": {
"tickmode": "array",
"tickvals": list(range(6)),
"ticktext": ["0 - low" if i == 0 else "5 - high" if i==5 else i for i in range(6)],
}
}
)
我创建了一个仪表图,但我想提及标签的含义,例如 0 = 低和 5 = 高。这意味着我需要两个标签(左边低,右边高)。
我的图表如下所示:
代码:
import plotly.graph_objects as go
fig = go.Figure(go.Indicator(
domain = {'x': [0, 1], 'y': [0, 1]},
value = 4.3,
mode = "gauge+number+delta",
title = {'text': "General satisfaction"},
delta = {'reference': 2.5},
gauge = {'axis': {'range': [None, 5], 'tickwidth': 1,'tickcolor': "black"},
'bar': {'color': "MidnightBlue"},
'steps' : [
{'range': [0, 1], 'color': "DarkTurquoise"},
{'range': [1, 2], 'color': "MediumTurquoise"},
{'range': [2, 3], 'color': "Turquoise"},
{'range': [3, 4], 'color': "PaleTurquoise"},
{'range': [4, 5], 'color': "lightcyan"}],
'threshold' : {'line': {'color': "brown", 'width': 4}, 'thickness': 0.75, 'value': 4.8}}))
fig.show()
在这种情况下有什么参数可以帮助我吗?
- graph objects indicator tickmode、tickvals 和 ticktext
- 如下所示
fig.update_traces(
gauge={
"axis": {
"tickmode": "array",
"tickvals": list(range(6)),
"ticktext": ["0 - low" if i == 0 else "5 - high" if i==5 else i for i in range(6)],
}
}
)