Python 如何在matplotlib中将条形图上的附加值绘制为线段?

Python 如何在matplotlib中将条形图上的附加值绘制为线段?,python,matplotlib,bar-chart,Python,Matplotlib,Bar Chart,我有一个Python条形图,我想在上面绘制一些其他值(例如,表示平均值)作为段 考虑以下绘制简单条形图的代码: import matplotlib.pyplot as plt h = plt.bar([0,1,2], [4,5,6],width=0.5) plt.legend((h,), ("vals",)) plt.show() 这将绘制下图: 对于每个条,我都有一个平均值,我想在相应条上绘制为一个线段。所需的绘图如下所示: 如何在matplotlib中将条形图上的值绘制为线段?这如何

我有一个Python条形图,我想在上面绘制一些其他值(例如,表示平均值)作为段

考虑以下绘制简单条形图的代码:

import matplotlib.pyplot as plt

h = plt.bar([0,1,2], [4,5,6],width=0.5)
plt.legend((h,), ("vals",))
plt.show()
这将绘制下图:

对于每个条,我都有一个平均值,我想在相应条上绘制为一个线段。所需的绘图如下所示:

如何在
matplotlib
中将条形图上的值绘制为线段?

这如何

import matplotlib.pyplot as plt

indices = [0, 1, 2]
values = [4, 5, 6]
averages = [3.5, 5.5, 4.75]
pad = 0.3

fig, ax = plt.subplots()

b = ax.bar(indices, values, width=0.5, label='vals')

for index, average in zip(indices, averages):
    l = ax.plot([index - pad, index + pad], [average, average], color='red')

ax.legend([b, l[0]], ['vals', 'avg'])
这个怎么样

import matplotlib.pyplot as plt

indices = [0, 1, 2]
values = [4, 5, 6]
averages = [3.5, 5.5, 4.75]
pad = 0.3

fig, ax = plt.subplots()

b = ax.bar(indices, values, width=0.5, label='vals')

for index, average in zip(indices, averages):
    l = ax.plot([index - pad, index + pad], [average, average], color='red')

ax.legend([b, l[0]], ['vals', 'avg'])