python - 如何将变量与 broken_bath 图一起使用?
问题描述
我希望能够在我的图表中使用变量作为值,因为这些值会经常变化。我正在尝试从包含所有必要数据的准备好的字典中获取值。
这就是我的想法,但我KeyError
每次都遇到。
d = {'Bob Dole': [(1100, 700), (1100, 700), (0, 0), (0, 0), (1100, 700), (1100, 700), (1100, 700)]}
name = 'Bob Dole'
tuple_range = d[name[0]]
fig, ax = plt.subplots()
ax.broken_barh([tuple_range], (3, 4), facecolors='tab:blue')
ax.set_ylim(0, 30)
ax.set_xlim(800, 2100)
ax.set_xticks(x)
ax.set_xlabel('Time of Day')
ax.set_yticks([3, 6, 9, 12, 15, 18, 21])
ax.set_yticklabels(names)
ax.set_title('Monday')
ax.grid(True)
plt.show()
错误:
{'Bob Dole': [(1100, 700), (1100, 700), (0, 0), (0, 0), (1100, 700), (1100, 700), (1100, 700)]}
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
return self.func(*args)
File "ShiftScheduling.py", line 91, in display_selected_command
backend.display(selected_tuple[0])
File "/user/Desktop/MachineLearning/MyPrograms/Sbackend.py", line 73, in display
sp.create_pairs(items)
File "/user/Desktop/MachineLearning/MyPrograms/scheduleplot.py", line 140, in create_pairs
create_plot(names, times)
File "/user/Desktop/MachineLearning/MyPrograms/scheduleplot.py", line 25, in create_plot
tuple_range = d[times[n]]
KeyError: (1100, 700)
解决方案
我不太明白您要做什么,但是您的字典和访问元素存在问题。
name[0]
将返回字符串的第一个字母,在本例中为B
. 如果您想使用不同的键(这是我的理解),请遍历它们,例如。
for key in d:
print(d[key])
或使用keys
:
for key in d.keys():
print(d[key])
编辑如果您尝试访问每个键的元组的第一个值,只需索引为:
d[key][0][0]
如果您希望每个键的所有对始终是元组的第一个,那么:
for i in d[name]:
print(i[0])
这有帮助吗?
推荐阅读
- python - 获取矩阵的对角线之和时出现 IndexError(列表列表)
- ansible - 如何使用 Ansible 对主机进行身份验证?
- python - 我们是如何在 A 星算法中给出这些八个方向的值的?
- java - 运算符 switchMap() 不会取消订阅上一个请求
- c++ - 如何从用户输入中替换代码中的变量值?
- php - php验证散列密码在我的函数中不起作用
- android - 如何将 Piniew OTP 字段设计从方框更改为简单线?
- ios - 动态改变 cell.update 日期函数?
- mysql - MySQL Server 基于线程而不是基于进程是什么意思?
- spring - Junit 用一堆@Pointcut 测试一个类