python - Matplotlib matshow:显示所有刻度标签
问题描述
我是 Matplotlib 的新手,我使用该matshow
函数创建了一些数字相关性的热图。目前,下面的代码仅显示每 5 个标签(或刻度),我希望它显示所有这些。编码:
names = list('ABCDEDFGHIJKLMNOPQRSTU')
#just some random data for reproductability
df = pd.DataFrame(np.random.randint(0,100,size=(100, 22)), columns=names)
fig = plt.figure()
ax = fig.add_subplot(111)
cor_matrix = df.corr()
#these two lines don't change the outcome
ax.set_xticks(np.arange(len(names)))
ax.set_yticks(list(range(0,len(names))))
ax.matshow(cor_matrix)
plt.show()
我读了这个问题:如何在 matplotlib 中显示所有标签值? 但是那里的答案对我不起作用。如果我没有明确设置刻度,或者以任何一种方式设置它们,这个数字就不会改变。
还尝试了这个问题的解决方案:如何使 matplotlib 显示所有 x 坐标?
这是plt.xticks(list(range(0,len(names))))
,但这也没有做任何事情。
解决方案
您可以使用MultipleLocator
:
from matplotlib.ticker import MultipleLocator # <- HERE
names = list('ABCDEDFGHIJKLMNOPQRSTU')
#just some random data for reproductability
df = pd.DataFrame(np.random.randint(0,100,size=(100, 22)), columns=names)
fig = plt.figure()
ax = fig.add_subplot(111)
cor_matrix = df.corr()
ax.matshow(cor_matrix)
ax.yaxis.set_major_locator(MultipleLocator(1)) # <- HERE
ax.xaxis.set_major_locator(MultipleLocator(1)) # <- HERE
plt.show()
推荐阅读
- laravel - How to correctly delete items when relationships are involved?
- python - How to keep main loop running after running a process by multiprocessing
- python - Weights minimization issue with linprog
- r - 从R中的字符串创建词袋
- java - javax.el.PropertyNotFoundException:在类型 java.lang.String 上找不到属性“用户名”
- python - 如何遍历多行字符串,并返回包含字符串某些部分的列表
- google-app-maker - Appmaker Navigate to a dynamic page
- javascript - 无法将图表添加到我的 vue 组件
- angular - 在角度 8 ngFor 循环中更改结构时输入值保持不变
- python - 堆栈,枢轴或其他东西?