在 python 中的条形图上的条形上方添加值
Add values above bars on a bar chart in python
我有以下代码:
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
languages =['Python', 'SQL', 'Java', 'C++', 'JavaScript']
pos = np.arange(len(languages))
popularity = [56, 39, 34, 34, 29]
bars = plt.bar(pos, popularity, align='center', linewidth=0, color='lightslategrey')
bars[0].set_color('#1F77B4')
plt.xticks(pos, languages, alpha=0.8)
plt.ylabel("")
plt.title('Top 5 Languages for Math & Data \nby % popularity on Stack Overflow', alpha=0.8)
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
for spine in plt.gca().spines.values():
spine.set_visible(False)
for index, value in enumerate(str(popularity)):
plt.text(index,value,str(popularity))
plt.show()
我正在尝试标记每个柱上方 Y 轴的值(Y 值)。
但是,这段代码并没有这样做。
谁能指出我哪里出错了?
你快到了;您只需要将最后一个 for 循环更改为:
...
...
for index, value in enumerate(popularity):
plt.text(index,value, str(value))
plt.show()
这将生成此图:
我有以下代码:
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
languages =['Python', 'SQL', 'Java', 'C++', 'JavaScript']
pos = np.arange(len(languages))
popularity = [56, 39, 34, 34, 29]
bars = plt.bar(pos, popularity, align='center', linewidth=0, color='lightslategrey')
bars[0].set_color('#1F77B4')
plt.xticks(pos, languages, alpha=0.8)
plt.ylabel("")
plt.title('Top 5 Languages for Math & Data \nby % popularity on Stack Overflow', alpha=0.8)
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
for spine in plt.gca().spines.values():
spine.set_visible(False)
for index, value in enumerate(str(popularity)):
plt.text(index,value,str(popularity))
plt.show()
我正在尝试标记每个柱上方 Y 轴的值(Y 值)。
但是,这段代码并没有这样做。
谁能指出我哪里出错了?
你快到了;您只需要将最后一个 for 循环更改为:
...
...
for index, value in enumerate(popularity):
plt.text(index,value, str(value))
plt.show()
这将生成此图: