2016-12-24 11 views
1

matplotlibでrcパラメタリゼーションを実装して、データをプロットする際の生産性をきれいにしました。Python - カラーバーメジャーダックのサイズを小さくする

軸の目盛りのパラメータで遊んでいるとき、私のカラーバーの目盛りのサイズに影響し、見た目が奇妙に見えます。

データをプロットするスクリプトの一部のみを作成しました。

import matplotlib.pyplot as plt 
import numpy as np 

#================================= 
##### Custom Plot Parameters ##### 
#================================= 
params = { 
    'backend': 'wxAgg', 
    'lines.markersize': 2, 
    'lines.linewidth': 2.5, 
    'axes.labelsize': 16, 
    'axes.linewidth': 2.5, 
    'xtick.major.size': 10, 
    'xtick.minor.size': 3, 
    'xtick.major.width': 2.5, 
    'xtick.minor.width': 1.25, 
    'ytick.major.size': 10, 
    'ytick.minor.size': 3, 
    'ytick.major.width': 2.5, 
    'ytick.minor.width': 1.25, 
    'xtick.labelsize': 15, 
    'ytick.labelsize': 15, 
    'text.fontsize': 10, 
    'font.weight': 'heavy', 
    'text.usetex': True, 
    'figure.figsize': [9,7], 
    'legend.fontsize': 15, 
    'legend.frameon': True, 
} 
plt.rcParams.update(params) 


cmap = plt.get_cmap("Set1", 150) 


##### ColorMap ##### 
cax = plt.scatter(RelDist, RadVel, c=Infall, cmap=cmap, vmin=0.1, vmax=max(Infall)) 
cbar = plt.colorbar(cax, ticks=[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0], format=None, shrink=0.7, pad=0.01) 


plt.plot(R, nfwEsc08, ':', linewidth=2., color='black', label=r'$ 0.8 \times 10^{12}$') 
plt.plot(R, nfwEsc12, '-.', linewidth=2., color='black', label=r'$ 1.2 \times 10^{12}$') 
plt.plot(R, nfwEsc20, '--', linewidth=2., color='black', label=r'$ 2.0 \times 10^{12}$') 

plt.plot(R, -nfwEsc08, ':', linewidth=2., color='black') 
plt.plot(R, -nfwEsc12, '-.', linewidth=2., color='black') 
plt.plot(R, -nfwEsc20, '--', linewidth=2., color='black') 

plt.xlim(0,1400) 
plt.ylim(-450,450) 

plt.xlabel('$\mathrm{Galactocentric\ Distance}$ [$\mathrm{kpc}$]') 
plt.ylabel('$\mathrm{Radial\ Velocity}$ [$\mathrm{km}\ \mathrm{s}^{-1}$]') 
cbar.set_label('$\mathrm{Infall\ Time}$ [$\mathrm{Gyr}$]') 




plt.legend() 



plt.show() 

enter image description here

私はトラブルカラーバーを使って何を関与matplotlib.rcParamsのドキュメントを見つけることを持ってきました。私は彼らのすべてです。

プロット軸の目盛りサイジングに影響しないカラーバーのメジャーティックサイジングを調整するにはどうすればよいですか?

-------------編集---------------問題がある

#================================= 
##### Custom Plot Parameters ##### 
#================================= 
params = { 
    'backend': 'wxAgg', 
    'lines.markersize': 2, 
    'lines.linewidth': 2.5, 
    'axes.labelsize': 16, 
    'axes.linewidth': 2.5, 
    'xtick.major.size': 10, 
    'xtick.minor.size': 3, 
    'xtick.major.width': 2.15, 
    'xtick.minor.width': 1.25, 
    'ytick.major.size': 10, 
    'ytick.minor.size': 3, 
    'ytick.major.width': 2.15, 
    'ytick.minor.width': 1.25, 
    'xtick.labelsize': 15, 
    'ytick.labelsize': 15, 
    'text.fontsize': 10, 
    'font.weight': 'heavy', 
    'text.usetex': True, 
    'figure.figsize': [9,7], 
    'legend.fontsize': 15, 
    'legend.frameon': True, 
} 
plt.rcParams.update(params) 


x = np.array(np.random.randint(0, 50, 500)) 
y = x**2 
z = y/x 

cmap = plt.get_cmap("Set1", 150) 


##### ColorMap ##### 
cax = plt.scatter(x, y, c=z, cmap=cmap, vmin=0.1, vmax=max(z)) 
cbar = plt.colorbar(cax, format=None, shrink=0.7, pad=0.01) 

plt.legend() 

plt.show() 

enter image description here

長軸のカスタマイズがカラーバーの大きな目盛りにも影響を及ぼしていることを深刻に厚くすることが原因です。

どうしてもカラーバーの目盛りに何も起こらないようにする方法はありますが、どういうわけか私のプロットの変更を保存することができますか?

+0

今、この例を実行しようとすると、一連の変数は未定義です。これをMCVEに単純化できますか? http://stackoverflow.com/help/mcve –

+0

@PaulHランダム変数の生成された配列に対して少し編集セクションを追加します。 – DarthLazar

答えて

1

rcParamsでは、今後のプロットのデフォルト値を編集しています。知っておくべきことは、Colormap cbarには(docs)でアクセスできる独自のax属性があることです。その知識を使って、デフォルトを維持しながら、その特定の軸のティックを変更することができます。

[...] 
cbar = plt.colorbar(cax, format=None, shrink=0.7, pad=0.01) 
cbar.ax.tick_params(labelsize=5, width=2) 
関連する問題