2017-10-19 7 views
2

にカラーバーの短い線を削除することができます。どのように私はmatplotlibのをプロットしましたし、私はカラーバーに短い線を持ってmatplotlibの

enter image description here

は、どのように私のようなカラーバーを持つように短い行を削除することができますこの絵:私は自分のコードに変更する必要がどのような

enter image description here

? 私のコードはここにある:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

from __future__ import unicode_literals 
from matplotlib import rc 
from matplotlib.colors import LogNorm 
import matplotlib.pyplot as plt 
import numpy as np 
import scipy.stats as stats 
import matplotlib as cm 

phi = open("file1.txt").read().splitlines() 
psi = open("file2.txt").read().splitlines() 

# normal distribution center at x=0 and y=5 
x = np.array(phi).astype(np.float) 
y = np.array(psi).astype(np.float) 

plt.hist2d(x, y, bins=400, cmap='bone', norm=LogNorm()) 
plt.colorbar() 
plt.title('Distribution') 
plt.xlabel(r' Phi ($\phi$)', fontsize=15) 
plt.ylabel(r'Psi ($\psi$)', fontsize=15) 
plt.rc('xtick', labelsize=11) 
plt.rc('ytick', labelsize=11) 
plt.xlim((-180,180)) 
plt.ylim((-180,180)) 
plt.axhline(0, color='black') 
plt.axvline(0, color='black') 
plt.grid() 
plt.show() 

答えて

2

私はあなたがカラーバーから小目盛りを削除する意味推測します。

matplotlib.tickerモジュールのLogLocatorを使用して、ティックの位置を設定することで、これを行うことができます。デフォルトでは、これにはマイナーダニ(基数の整数倍の間にティックがない)がないため、LogLocatorを使用することができ、他のオプションは必要ありません。

colorbar(ここでは私はcbと呼んでいます)への参照を保持する必要があります。その場合はset_ticks()メソッドを使用できます。プロットを作成する前に、このアップデートをティックにするようにupdate_ticks=Trueも設定してください。

(私はいくつかの偽のデータを使用し、それ以外はスクリプトで何かを変更していない):

import matplotlib.ticker as ticker 

... 

cb = plt.colorbar() 
cb.set_ticks(ticker.LogLocator(), update_ticks=True) 

... 

enter image description here

0

完全にダニを削除するには( "どのように私は短い行を削除することができます? ")、カラーバーの軸にtick_paramsを使用できます。

cbar = plt.colorbar() 
cbar.ax.tick_params(size=0) 

enter image description here

+0

感謝!私が探していたのは –

関連する問題