matplotlib 在水平条的末尾写文章[重复]

h7wcgrx3  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(83)

此问题已在此处有答案

How to add value labels on a bar chart(7个回答)
5天前关闭。
我是matplotlib的新手,在过去的3天里,我一直在尝试制作一个非常简单的水平条形图:

Y中,它携带一个products列表,在Xdays_prod中,它是特定产品的剩余天数。
我不能做的是在每个条形图的末尾加上产品完成的日期,这是在eo_inv中获得的。
我知道这个论坛里有几个关于这个主题的帖子,但我不知道如何使它们适应我的需要。
代码如下:

from datetime import date, timedelta
import matplotlib.pyplot as plt

days_prod = [292, 268, 273, 249, 191, 251]
prods = ['milk', 'butter', 'curd', 'panner', 'cheese', 'yogurt']

eo_inv = [
    str(date.today() + timedelta(days=x-1))
    for x in days_prod
]
# at 2023/10/17 eo_inv results in:
# eo_inv = ['2024-08-03', '2024-07-10', '2024-07-15', '2024-06-21', '2024-04-24', '2024-06-23']

plt.barh(prods, days_prod)

plt.title('Inventory')
plt.xlabel('Days Left')
plt.ylabel('Products')

plt.show()
a0x5cqrl

a0x5cqrl1#

也许你正在寻找一些东西,比如迭代days_prod中的所有条目,并在条的末尾添加eo_inv中的相应条目:

plt.xlim(0, max(days_prod)*1.3)
for i, day in enumerate(days_prod):
    plt.text(day, i, eo_inv[i])

相关问题