Python Plotly:如何在直方图上显示单个值?
我试着用绘声绘色的方式画出动态的情节。我想绘制使用groupby聚合的数据计数。 我想按颜色,甚至按列来划分情节。问题是我希望在每个条上显示值计数。使用直方图,我可以得到平滑的条带,但我找不到如何显示计数: 使用条形图,我可以显示计数,但我无法获得平滑的条形图,并且计数不会显示整个条形图,而是显示组成该条形图的每个案例 这是我的条形图代码Python Plotly:如何在直方图上显示单个值?,python,plotly,Python,Plotly,我试着用绘声绘色的方式画出动态的情节。我想绘制使用groupby聚合的数据计数。 我想按颜色,甚至按列来划分情节。问题是我希望在每个条上显示值计数。使用直方图,我可以得到平滑的条带,但我找不到如何显示计数: 使用条形图,我可以显示计数,但我无法获得平滑的条形图,并且计数不会显示整个条形图,而是显示组成该条形图的每个案例 这是我的条形图代码 val = pd.DataFrame(data2.groupby(["program", "gender"])["experience"].value_c
val = pd.DataFrame(data2.groupby(["program", "gender"])["experience"].value_counts())
px.bar(x=val.index.get_level_values(0), y=val, color=val.index.get_level_values(1), barmode="group", text=val)
柱状图基本上是一样的
谢谢你的帮助 如果您的第一个图形是graph object Library,您可以尝试:
# Use textposition='auto' for direct text
fig=go.Figure(data[go.Bar(x=val.index.get_level_values(0),
y=val, color=val.index.get_level_values(1),
barmode="group", text=val, textposition='auto',
)])
似乎没有文本属性。所以,如果你愿意在制作情节之前进行任何分类,我会使用。通常,使用px.Bar将文本应用于条形图。。。text=。但这会给出您用文本描述的数据所有子类别的结果。但是因为我们知道px.Bar按照源代码的组织顺序添加数据和注释,所以我们可以简单地使用fig.data[-1].text=sums将文本更新到应用的最后一个子类别。剩下的唯一挑战是检索正确的总和
绘图:
使用数据示例完成代码:
请你把数据2的值贴出来好吗?或者,如果您使用any@Joris谢谢你接受我的建议。你觉得怎么样?
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
# data
df = pd.DataFrame({'x':['a', 'b', 'c', 'd'],
'y1':[1, 4, 9, 16],
'y2':[1, 4, 9, 16],
'y3':[6, 8, 4.5, 8]})
df = df.set_index('x')
# calculations
# column sums for transposed dataframe
sums= []
for col in df.T:
sums.append(df.T[col].sum())
# change dataframe format from wide to long for input to plotly express
df = df.reset_index()
df = pd.melt(df, id_vars = ['x'], value_vars = df.columns[1:])
fig = px.bar(df, x='x', y='value', color='variable')
fig.data[-1].text = sums
fig.update_traces(textposition='inside')
fig.show()