嗨,我的数据框看起来像这样:
Grandes Cap Monétaire Petites Cap
2022-10-01 61.40 11.68 26.92
2022-11-01 58.63 12.27 29.10
2022-12-01 58.36 11.75 29.89
2023-01-01 55.28 13.51 31.21
2023-02-01 57.27 12.60 30.13
2023-03-01 55.92 12.08 32.01
2023-04-01 46.84 11.71 41.45
2023-05-01 46.92 12.87 40.21
2023-06-01 46.40 11.20 42.40
2023-07-01 51.59 12.65 35.75
我正在尝试使用以下代码进行酒吧聊天:
def graph_style(style):
fig = go.Figure(
[go.Bar(name=col,
x=style.index,
y=style[col],
customdata=style.columns,
hovertemplate='<br>'.join(['<b>Classe: %{customdata}</b>',
'Date: %{x}',
'Poids: %{y:.1f}%'
])
)
for col in style.columns]
)
fig.update_layout(showlegend=True,
yaxis=dict(range=[0, 100],
ticksuffix='%'),
barmode='stack',
uniformtext_mode='hide'
)
fig.update_xaxes(dtick="M3",
tickformat="%b\n%Y",
)
return(fig)
但是我得到了这个奇怪的输出。我尝试了很多选项,但无法得到我想要的内容,即列的名称。
任何帮助都会有帮助
数据框可用于自定义数据,可以使用元处理。
元
分配与此相关的额外元信息 可用于各种文本属性的跟踪。 轨迹、图形、轴和等属性 颜色条name
,注释title.text
text
、rangeselector
和updatemenues
sliders
文字全部支持label
。访问轨迹meta
同一跟踪中属性中的值,只需使用meta
其中%{meta[i]}
是索引或键i
有问题的项目。要访问跟踪meta
布局属性,使用meta
其中%{data[n[.meta[i]}
是i
的索引或键,meta
是迹线 索引。n
import plotly.graph_objects as go
def graph_style(style):
fig = go.Figure(
[go.Bar(name=col,
x=style.index,
y=style[col],
meta=col,
#customdata=style.columns,
hovertemplate='<br>'.join(['<b>Classe: %{meta}</b>',
'Date: %{x}',
'Poids: %{y:.1f}%',
'<extra></extra>'
])
)
for col in style.columns]
)
fig.update_layout(showlegend=True,
yaxis=dict(range=[0, 100],
ticksuffix='%'),
barmode='stack',
uniformtext_mode='hide'
)
fig.update_xaxes(dtick="M3",
tickformat="%b\n%Y",
)
return(fig)
graph_style(df)
我找到了另一个解决方案:
import plotly.graph_objects as go
def graph_style(style):
fig = go.Figure(
[go.Bar(name=col,
x=style.index,
y=style[col],
customdata=np.reshape([col]*style.shape[0], -1), #here
hovertemplate='<br>'.join(['<b>Catégorie: %{meta}</b>',
'',
'Date: %{x}',
'Poids: %{y:.1f}%',
'<extra></extra>'
])
)
for col in style.columns]
)
fig.update_layout(showlegend=False,
yaxis=dict(range=[0, 100],
ticksuffix='%'),
barmode='stack',
uniformtext_mode='hide'
)
fig.update_xaxes(dtick="M3",
tickformat="%b\n%Y",
)
return(fig)
graph_style(style)