python - 如何让 matplotlib 在图形上显示来自两个字典的数据?
问题描述
使用以下代码时,所有数据值都正确显示:
import numpy as np
import matplotlib.pyplot as plt
ME_Requests = {'John Doe': 47, 'Amanda Doe': 27, 'Maria Doe': 26,}
non_ME_Requests = {'John Doe': 105, 'Amanda Doe': 64, 'Maria Doe': 48, 'Dimitrii Doe': 44}
month="Apr-2020"
X = np.arange(len(ME_Requests))
X_non_ME = np.arange(len(non_ME_Requests))
ax = plt.subplot(111)
ax.bar(X, ME_Requests.values(), width=0.2, align='center')
ax.bar(X_non_ME-0.2, non_ME_Requests.values(), width=0.2, align='center')
ax.legend(('ME_Requests','non_ME_Requests'))
# plt.xticks(X, ME_Requests.keys())
plt.xticks(X_non_ME, non_ME_Requests.keys(), rotation=90)
plt.tight_layout()
plt.subplots_adjust(top=0.85)
plt.title("Email Requests Closed Per Team Member In {}".format(month), fontsize=17)
plt.show()
但是,当我使用下面的代码时,它并没有真正起作用(不包括 Dimitrii Doe):
import numpy as np
import matplotlib.pyplot as plt
ME_Requests = {'John Doe': 105, 'Amanda Doe': 64, 'Maria Doe': 48, 'Dimitrii Doe': 44}
non_ME_Requests = {'John Doe': 47, 'Amanda Doe': 27, 'Maria Doe': 26,}
month="Apr-2020"
X = np.arange(len(ME_Requests))
X_non_ME = np.arange(len(non_ME_Requests))
ax = plt.subplot(111)
ax.bar(X, ME_Requests.values(), width=0.2, align='center')
ax.bar(X_non_ME-0.2, non_ME_Requests.values(), width=0.2, align='center')
ax.legend(('ME_Requests','non_ME_Requests'))
# plt.xticks(X, ME_Requests.keys())
plt.xticks(X_non_ME, non_ME_Requests.keys(), rotation=90)
plt.tight_layout()
plt.subplots_adjust(top=0.85)
plt.title("Email Requests Closed Per Team Member In {}".format(month), fontsize=17)
plt.show()
考虑到我无法提前预测哪个字典(ME_Requests 或 non_ME_Requests)将具有更多值,如何正确显示数据?
解决方案
推荐阅读
- vue.js - PrimeFlex 边距在 Vue3 应用程序中不起作用
- kotlin - 在 kotlin 中声明全局变量默认为属性值
- transactions - 如何在可靠的块之间为地址指望链交易
- java - Selenium & Java - 指定的代理被忽略
- javascript - 类型错误:client.voice.createBroadcast 不是函数
- amazon-dynamodb - 使用包含运算符查询全局二级索引
- reactjs - 反应作为一个整体部署的多个应用程序
- python - 从列表和现有数据框创建数据框
- python - 如何动态导入类?
- python - 使用空间连接处理 geohash dict 查找