共有 y 軸プロット (3 つのプロットが連続) を作成しようとしています。3 つのサブプロットすべての目盛り幅を設定しようとすると、次のアプローチは機能しませんでした。
最初に、rc params で目盛りの幅を設定しようとしました。これは目盛りの長さでは機能しますが、幅では機能しません。次のエラー メッセージが表示されます。
KeyError: 'xtick.major.width is not a valid rc parameter.See rcParams.keys() for a list of valid parameters.'
リストを調べると、 xtick.major.width は有効なパラメーターなので、他に何が間違っている可能性がありますか?
ここにコード
import matplotlib.pyplot as plt
import matplotlib as mpl
import scipy.io
from mpl_toolkits.axes_grid1 import Grid
import numpy as np
from pylab import *
# set tick width
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
#ignore all the data import please
X = scipy.io.loadmat('Ud04.mat')
psi11_final=X['psi11_final']
psi12_final=X['psi12_final']
psi21_final=X['psi21_final']
psi22_final=X['psi22_final']
psi11_final=flipud(psi11_final)
psi12_final=flipud(psi12_final)
psi21_final=flipud(psi21_final)
psi22_final=flipud(psi22_final)
na11_final=X['na11_final']
na12_final=X['na12_final']
na21_final=X['na21_final']
na22_final=X['na22_final']
na11_final=flipud(na11_final)
na12_final=flipud(na12_final)
na21_final=flipud(na21_final)
na22_final=flipud(na22_final)
np11_final=X['np11_final']
np12_final=X['np12_final']
np21_final=X['np21_final']
np22_final=X['np22_final']
np11_final=flipud(np11_final)
np12_final=flipud(np12_final)
np21_final=flipud(np21_final)
np22_final=flipud(np22_final)
extot=na11_final+na12_final+na21_final+na22_final+np11_final+np12_final+np21_final+np22_final
k_bar=X['k_bar']
nkap_bar=X['nkap_bar']
nkap_bar=nkap_bar[0,0]
kapmin=k_bar[0,0]
kapmax=k_bar[0,nkap_bar-1]
mu_bar=X['mu_bar']
nmu_bar=X['nmu_bar']
nmu_bar=nmu_bar[0,0]
mumin=mu_bar[0,0]
mumax=mu_bar[0,nmu_bar-1]
fig = plt.figure(1, (12., 4.))
grid = Grid(fig, 111, # similar to subplot(111)
nrows_ncols = (1,3), # creates 3x1 grid of axes
axes_pad=0.1) # pad between axes in inch.
for i in range(3):
#grid[i].imshow(extot,interpolation='nearest')
grid[i].imshow(extot,aspect='auto',extent=(kapmin,kapmax,mumin,mumax),interpolation='nearest')
plt.show()
次に、コードの最後の行で次の変更を行い、最初の rc パラメータを削除して、目盛りの幅を設定しようとしました。
ax = plt.gca()
ax.tick_params(axis='both',width=5)
for i in range(3):
#grid[i].imshow(extot,interpolation='nearest')
grid[i].imshow(extot,aspect='auto',extent=(kapmin,kapmax,mumin,mumax),interpolation='nearest')
plt.show()
これは、3*1 シリーズの最後のプロットの目盛りの太さだけを変更しました。rc パラメータを使用せずにそれらすべてにアクセスする方法はありますか? 目盛りラベルのオーバーラップを取り除くことも役に立ちます。そこで私は目盛りを手動で設定しようとしました
#plt.xticks([0.02,0.04,0.06], [0.02,0.04,0.06])
#plt.yticks([-0.3,-1.2,-1.1,-1.0], [-0.3,-1.2,-1.1,-1.0])
ただし、グリッド上の 3 つのプロットのうち最後のプロットの外観のみが変更されました。