2016-10-20 7 views
1

ここでは、次のコードを使用して、それからの私fileヒートマップ(パンダ)に予備のレーン

Iプロットヒートマップです:

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

答えて

2

間違いはありません。まず、これはパンダとは何の関係もありませんので、我々は我々が11行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() 

を考慮することができます。それはまた、12番目の行を示しています。

最も簡単な解決策は、単に行この場合plt.ylim([0,11])

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

の数に軸を制限することが考えられます。

もっと知りたいのですが... 11のスペシャルですか?たぶん、他の数字を入れてみましょう。 1から10までは問題ありません。 11はしません。 12はそうするでしょう、13はありません。
これらの数値は特別ですが、matplotlibは、11,13、...のエンティティをプロットするように求められれば、良い軸の目盛りを簡単に見つけることができません。 これはmatplotlib locatorによって決定されます。
難しい部分は、11個のエンティティに適したロケータを見つけることです。私はないと思います。
plt.gca().yaxis.set_major_locator(MaxNLocator(nbins = 11))
ここではうまくいきません。しかしこれは今でも別の質問かもしれません。

関連する問題