我有一个列表字典:
dictA = {"A": [1,2,3], "B": [4,5,6], "C": [7,8,9]}
字符串
我想使用Matplotlib imshow将数据显示为热图。A、B和C垂直(y)延伸,并且值是从左到右延伸的对应单元格值。这将导致3x 3图。
理想情况下,我希望将其保持在核心Python中,并避免通过NumPy等包进行冗长的数据类型争论,但如果无法帮助,那就无法帮助-我只是希望它能工作。
基本要素是:
import matplotlib.pyplot as plt
dictA = {"A": [1,2,3], "B": [4,5,6], "C": [7,8,9]}
SOMETHING = #wrangling my dictionary to be "array-like"
plt.imshow(SOMETHING)
plt.show()
型
2条答案
按热度按时间6vl6ewon1#
假设字典值以正确的顺序添加(并且您是working with Python 3.6 or above),最简单的版本是:
字符串
这将创建一个图像布局,其中每个字典值形成一个 * 行 *,即:
型
相反,如果问题的意思是每个字典值都应该形成一个 * 列 *,那就是:
型
...那么这可以通过将上面的
plt.imshow()
调用替换为:型
感谢@mozway指出歧义并提供相应的第二个解决方案。
x7rlezfr2#
要使用matplotlib和给定的列表字典创建一个热图,可以使用嵌套的列表解析将字典转换为“类数组”格式。虽然numpy通常用于更复杂的数据操作,但您可以避免将其用于此简单任务。这里有一种不用numpy实现热图的方法:
字符串