出于某种原因,我有一个未排序的数据表(仅涉及前两列),如下所示:
1 2 0.9
2 2 0.4
3 3 0.3
1 3 0.4
1 1 0.5
2 3 0.9
2 1 0.9
3 1 0.8
3 2 0.9
要在python中正确绘制(在matplotlib上使用imshow)我需要按如下方式对内容进行排序:
1 1 ?
1 2 ?
1 3 ?
2 1 ?
2 2 ?
2 3 ?
3 1 ?
3 2 ?
3 3 ?
问号是第三列的相关值。
另一方面,如果有人知道如何使用imshow来绘制未经排序的数据表,这也会有所帮助。将以下数据表视为由前两列协调的3x3表,并且每个组件的内容由3ed列中的颜色值表示。
答案 0 :(得分:4)
如果您的数据如下所示:
data=[[1, 2, 0.9],
[2, 2, 0.4],
[3, 3, 0.3],
[1, 3, 0.4],
[1, 1, 0.5],
[2, 3, 0.9],
[2, 1, 0.9],
[3, 1, 0.8],
[3, 2, 0.9]]
你可以
data.sort()
列出默认排序顺序是第一个元素,第二个元素,第三个元素等。 要将数据转换为该格式,您可以:
with open("./data.dat") as file:
data = [map(float, ln.split()) for ln in file]