2017-01-11 5 views
3

私は文字列でデータをxラベルとしてプロットしています。私はテキストで軸を過負荷にしないようにラベルの周波数を制御したいと思います。下の例では、3つのティックごとにa-d-g-jというラベルしか表示しません。私はそれを行うことができmatplotlib xticks frequencyを選択

enter image description here

一つの方法は、2つの空の文字列ごとにn個の要素によってmy_xticks要素を交換することです。 しかし、私はそれがよりクリーンな方法を提供すると確信しています。ここで

はコードです:

import numpy as np 
import matplotlib.pyplot as plt 

y=np.array([4,4,4,5,5,6,5,5,4,4,4]) 
x = np.arange(y.shape[0]) 
my_xticks=['a','b','c','d','e','f','g','h','i','j','k'] 

plt.xticks(x, my_xticks) 
plt.plot(x, y) 

答えて

3

あなたはほとんどそこにいます! xticksの最初と2番目の引数を希望の周波数でサンプリングします。

質問には答えのためChanging the "tick frequency" on x or y axis in matplotlib?

import numpy as np 
import matplotlib.pyplot as plt 

y = np.array([4,4,4,5,5,6,5,5,4,4,4]) 
x = np.arange(y.shape[0]) 
my_xticks = np.array(['a','b','c','d','e','f','g','h','i','j','k']) 
frequency = 3 
plt.plot(x, y) 
plt.xticks(x[::frequency], my_xticks[::frequency]) 

Plot

+0

Thxをから重複しています。ターゲットの文字を指定する代わりに、ラベルの数値が高いメソッドを使用できるように、むしろピリオド番号を付けるだけです。私は現在あなたが述べた重複投稿を理解しようとしています。 – michltm

+0

私が理解しているように、実際には重複しているわけではありません。なぜなら、ポストでは、文字列を扱っているのに、ティックとして数字の配列を使うからです。 – michltm

+0

私はあなたの質問を今理解しています。更新された回答を参照してください。 – rafaelvalle

関連する問題