【问题标题】:Using mplcursors.cursor().connect() display bar name使用 mplcursors.cursor().connect() 显示栏名称
【发布时间】:2021-11-16 00:19:43
【问题描述】:

这是我的数据框

df = pd.DataFrame((['Sep-2015',  'Adam',3,10 ],         
['Sep-2015',  'David',3,9],
['Sep-2015',  'Adam',4,8],                   
['Sep-2015',  'Adam' ,3,7],         
['Sep-2015',  'David',6,6],         
['Sep-2015' , 'Hardik',1,5],        
['Sep-2015' , 'David' ,3,4],['Aug-2015' , 'David' ,3,4],['Aug-2015' , 'Ada' ,3,4]),columns=
['Date','Name','Count','alarm'])

使用这个数据框,我绘制了一个堆积条形图

df.sort_values('Date')
df = df.drop_duplicates(['Date', 'Name'], keep='last')
df2 = pd.DataFrame()
df2['Date'] = df['Date']
df2['Name'] = df['Name']
df2['Count'] = df['alarm']
df2
#pivot table
df2 = pd.pivot_table(data = df, values = 'alarm', columns = 'Name', index = 'Date').reset_index()
df2 = df2.set_index('Date')
plot = df2.plot(kind = 'bar',stacked = True,figsize=(15, 5))

我得到如下输出

在这里,我尝试在单击栏时显示栏名称。我试过了

mplcursors.cursor(plot).connect(
                    "add", lambda sel: sel.annotation.set_text(['Ada','Adam','David','Hardik'][sel.target.index]))

但是当我尝试这个时,它只显示所有条的第一个元素 (Ada)。 如何显示酒吧名称?

【问题讨论】:

    标签: python mplcursors


    【解决方案1】:

    这行得通:

    mplcursors.cursor(plot).connect("add", 
                                    lambda sel: sel.annotation.set_text(sel.artist.get_label()))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多