2013-06-16 15 views
24

matplotlibを使用してティックを固定位置に設定するのに役立つ人はいますか?このチュートリアルで説明するよう、私はFixedPositionを使用して試してみた:Fixed Position、matplotlibにティックを設定するには

ax = pl.gca() 
ax.xaxis.set_major_locator(eval(locator)) 

http://scipy-lectures.github.io/intro/matplotlib/matplotlib.html#figures-subplots-axes-and-ticks

をしかし、私は実行しようとすると、それはset_major_locator方法が存在しないことを私に伝えます。

単純な例が非常に便利です。

ありがとうございました。

+2

、そのリンクは、コンテキストのうち混乱です。 'eval'の使用は、例の数字を生成するために非常に巧妙であるかもしれません、' locator'の値が何であるかは非常に不明です。 – tacaswell

答えて

47

ax.set_xticks(positions)またはax.set_yticks(positions)をそのまま使用してください。例えば

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 
ax.set_xticks([0.15, 0.68, 0.97]) 
ax.set_yticks([0.2, 0.55, 0.76]) 
plt.show() 

enter image description here

+2

このメソッドは、私がプロットしている既存のダニを消去します。既存のものに影響を与えずにこれらの追加のティックを追加したい場合はどうすればよいですか? – dnth

+0

@dnth: 'twinx()'や 'twiny()'を使って反対側のティックを使って新しい軸を作ることができます。 –

+0

@dnth 'locs = ax.xaxis.get_ticklocs()'で位置を取得し、そのリストを修正して必要なティックを追加してから、 'ax.set_xticks(locs)'でJoeの提案に従います。 – ryanjdillon

1
import numpy as np 
import matplotlib.ticker as ticker 
import matplotlib.pyplot as plt 

name_list = ('Omar', 'Serguey', 'Max', 'Zhou', 'Abidin') 
value_list = np.random.randint(0, 99, size = len(name_list)) 
pos_list = np.arange(len(name_list)) 

ax = plt.axes() 
ax.xaxis.set_major_locator(ticker.FixedLocator((pos_list))) 
ax.xaxis.set_major_formatter(ticker.FixedFormatter((name_list))) 
plt.bar(pos_list, value_list, color = '.75', align = 'center') 

plt.show() 
+0

手入れが行き届いていますか? –

+0

これは参考になりました。 – ConanG

関連する問題