我有以下dataframe
import pandas as pd
from plotnine import *
df = pd.DataFrame({
'variable': ['gender', 'gender', 'age', 'age', 'age', 'income', 'income', 'income', 'income'],
'category': ['Female', 'Male', '1-24', '25-54', '55+', 'Lo', 'Lo-Med', 'Med', 'High'],
'value': [60, 40, 50, 30, 20, 10, 25, 25, 40],
})
df['variable'] = pd.Categorical(df['variable'], categories=['gender', 'age', 'income'])
我正在使用以下代码来获取堆积的条形图
(ggplot(df, aes(x='variable', y='value', fill='category'))
+ geom_col()
)
以上代码取自here
如何在每个栏的每个类别中间放置标签(在这种情况下为value
)?
答案 0 :(得分:0)
您可以像在ggplot2中那样进行操作(plotnine以高保真度对其进行复制),将“值”映射到美学标签中并添加geom_text
(具有堆栈位置,在此示例中为垂直居中):
(ggplot(df, aes(x='variable', y='value', fill='category', label='value'))
+ geom_col()
+ geom_text(position=position_stack(vjust=0.5))
)
有关原始ggplot2中有关此功能的更多详细说明,请参见this answer。