我试图从一个dict中绘制一个图形,它工作正常,但我也有一个类似的dict,我打算在每个条形图的顶部写入值。
这适用于绘制图形:
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['axes.formatter.useoffset'] = False
df = pd.DataFrame([population_dct])
df.sum().sort_values(ascending=False).plot.bar(color='b')
plt.savefig("temp_fig.png")
其中population_dct
为:
{'pak': 210, 'afg': 182, 'ban': 94, 'ind': 32, 'aus': 14, 'usa': 345, 'nz': 571, 'col': 47, 'iran': 2}
现在我有另一条法令,叫做counter_dct
:
{'pak': 1.12134, 'afg': 32.4522, 'ban': 3.44, 'ind': 1.123, 'aus': 4.22, 'usa': 9.44343, 'nz': 57.12121, 'col': 2.447, 'iran': 27.5}
我需要的第二个法令项目,以显示在上面的每个酒吧从以前的图表。
我尝试了:
df = pd.DataFrame([population_dct])
df.sum().sort_values(ascending=False).plot.bar(color='g')
for i, v in enumerate(counter_dct.values()):
plt.text(v, i, " " + str(v), color='blue', va='center', fontweight='bold')
这有两个问题:
counter_dct.values()
错过了值序列
1.这些值显示在每个图的底部,但对齐效果较差
也许有更好的方法来实现这一点?
1条答案
按热度按时间s4chpxco1#
由于您是以
desc
的方式绘制图形;首先需要根据值以降序方式对
population_dict
进行排序从
temp_dct
开始,然后从counter_dct
获取值