热图(熊猫)的额外车道

时间:2016-10-20 21:51:40

标签: pandas matplotlib heatmap

这是我的file

我使用以下代码绘制热图:

import pandas as pd
import matplotlib.pyplot as plt

new = pd.read_csv(r'path_to_file')
full_list=new.columns.values
new = new[full_list[1:]]
plt.pcolor(new, cmap='Blues')
plt.show()

文件只有11行值,但出于某种原因会显示12行。你知道什么是错的吗? 以下是输出对我的看法: s

1 个答案:

答案 0 :(得分:2)

没有错。首先,这与大熊猫无关,所以我们可以将其排除在外并考虑以下示例

import matplotlib.pyplot as plt
import numpy as np

a  = np.random.randint(0,10,size=(11, 2))
plt.pcolor(a, cmap='Blues')
plt.show()

我们创建一个包含11行和2列的数组并绘制它。它还显示了第12行。

最简单的解决方案可能是将轴限制为行数

plt.ylim([0,a.shape[0]])

在这种情况下plt.ylim([0,11])

但是我们想知道更多...... 十一点特别吗?也许吧,让我们通过添加其他数字来找出答案。 1至10工作正常。 11不会。 12将,13不  那么这些数字的特殊之处在于,如果要求绘制11,13 ......实体,matplotlib就不能轻易找到好的轴标记。 这由matplotlib locator决定 现在棘手的部分是为11个实体找到一个好的定位器。我认为没有,作为
plt.gca().yaxis.set_major_locator( MaxNLocator(nbins = 11) )
不会在这里工作。但现在这也可能是一个不同的问题。