热图中的额外车道 (pandas)
Extra lane in heat map (pandas)
这是我的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 行。你知道哪里出了问题吗?
这是我的输出方式:
没有错。首先,这与 pandas 无关,因此我们可以忽略它并考虑以下示例
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 个实体找到一个好的定位器。我认为有none,因为
plt.gca().yaxis.set_major_locator( MaxNLocator(nbins = 11) )
不会在这里工作。但这现在可能也是一个不同的问题。
这是我的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 行。你知道哪里出了问题吗?
这是我的输出方式:
没有错。首先,这与 pandas 无关,因此我们可以忽略它并考虑以下示例
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 个实体找到一个好的定位器。我认为有none,因为
plt.gca().yaxis.set_major_locator( MaxNLocator(nbins = 11) )
不会在这里工作。但这现在可能也是一个不同的问题。