2017-04-21 9 views
0

xticksを0,10.00,20.00,30.00,40.00,50.00に変更するにはどうすればいいですか?将来のデータが5000でない可能性があるので、ハードコードでなければ素晴らしいでしょう。x軸にラベルを付けるためにxs配列を作成しようとしましたが、結果軸は以前の自動調整のように5つではなくすべての値を持っていました。 。matplotlibの定義された範囲からxチックを調整する

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

# plot_result is numpy.ndarray of (8,5001) 
plt.imshow(plot_result, aspect='auto') 

xs = np.arange(0, 50.01, 0.01) # time 

plt.imshow(plot_result, aspect='auto') 
plt.xticks(range(len(xs)), xs) 

答えて

0

1つのオプションは、実際に最初の画素が050における最後の画素であるような画像のデータ範囲を設定することであろう。

これは、imshowextent引数を使用して実行できます。

extent:スカラー(左、右、下、上)、オプション、デフォルト:なし
位置、データ座標において、左下と右上の角の。 Noneの場合、イメージは、ピクセル中心がゼロベース(行、列)インデックスになるように配置されます。

データポイントがピクセルの中央に表示されるようにするには、いくらか小さな計算が必要です。

import matplotlib.pyplot as plt 
import numpy as np 

z = np.random.rand(8,5001) 
xmin = 0; xmax=50; dx=(xmax-xmin)/(z.shape[1]-1.) 
ymin = 0; ymax=7; dy=(ymax-ymin)/(z.shape[0]-1.) 
extent = [xmin-dx/2.,xmax+dx/2., ymin-dy/2.,ymax+dy/2. ] 
plt.imshow(z, aspect='auto', extent=extent) 

plt.show() 

enter image description here

関連する問題