我很努力,但我在这里坚持使用 matplotlib。请忽略,mpl 文档对我来说有点混乱。我的问题涉及以下内容:
D
我用函数绘制了一个对称的 n*n 矩阵matshow
。这样可行。我想做同样的事情,只是(n)项的顺序不同
D
D = [:,neworder] D = [neworder,:]
现在,我如何让滴答声重现这个新订单,最好另外使用MaxNLocator
?
据我所理解...
set_xticklabels
按顺序为刻度分配标签,与刻度的设置位置无关?!
set_xticks
(mpl docs: 'Set the x ticks with list of ticks') 在这里我真的不确定它是做什么的。有人可以准确解释吗?我不知道,这些功能对我的情况是否有帮助。使用常见的 xy 图和 matshow 甚至可能会有所不同。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca()
D = np.arange(100).reshape(10,10)
neworder = np.arange(10)
np.random.shuffle(neworder)
D = D[:,neworder]
D = D[neworder, :]
# modify ticks somehow...
ax.matshow(D)
plt.show()
参考保罗的回答,我想我是这样尝试的。使用neworder
来定义位置并将其用于标签,我添加plt.xticks(neworder, neworder)
为刻度修饰符。例如,neworder = [9 8 4 7 2 6 3 0 1 5]
我得到的是这个
标签的顺序是正确的,但刻度不正确。标签应该独立地显示正确的元素,而与刻度线的设置位置无关。那么错误在哪里呢?