【问题标题】:Extra lane in heat map (pandas)热图中的额外车道(熊猫)
【发布时间】:2017-03-03 02:04:53
【问题描述】:

这是我的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 matplotlib heatmap


    【解决方案1】:

    没有错。首先,这与 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 不会。
    因此,这些数字的特别之处在于,如果要求 matplotlib 绘制 11、13、...实体,则无法轻易找到好的轴刻度线。 这是由 matplotlib locator 决定的。
    现在棘手的部分是为 11 个实体找到一个好的定位器。我认为没有,因为
    plt.gca().yaxis.set_major_locator( MaxNLocator(nbins = 11) )
    不会在这里工作。但现在这也可能是一个不同的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-31
      • 2016-05-03
      • 2017-09-05
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多