2016-04-15 2 views
0

私はパーセンテージ値に対して時間をプロットしようとしていますが、私は多くのメジャーポイントを持っています。私はまた、x軸に書式設定された時間を表示して、それがどこでどこのアイデアを出すかを望みます。最後の注意点は、実際の計測点よりもxticksが少ないことです。私のxticksは左にプッシュされます

私の問題は、私がプロットしようとすると、私のxticksは軸の左側にシフトされます。

import time 
import matplotlib.pyplot as plt 

ticks = [ctime1, ctime2, ctime3] 
x = range(10) 
y = range(10) 
plt.xticks(x, ticks) 
plt.plot(x,y) 
plt.show() 

はありがとう私のコードは次のようになります

enter image description here

下の画像を参照してください!

答えて

0

あなたx変数が10の値が含まれており、あなたがそれらだけに表示したくない場合は、x内の各エントリに対応するtickエントリを作成する必要があります3.あなたのticks変数のみが含まれているため、これは実際に動作を期待されていますあなたが示したように左に。

また、もう1つの問題は、ティックテキストが長すぎて重複が多いことです。多分xticksを回転させることも考えてください。

import time 
import matplotlib.pyplot as plt 

x = range(10) 
y = range(10) 

# Xtick labels 
ticks = [ctime(val) for val in x] 
plt.plot(x,y) 

# Plot ticks with a rotation 
plt.xticks(x, ticks, rotation=12) 

plt.show() 

そうしないと、xticksの数を減らすことができます。

import numpy as np 

x = range(10) 
y = range(10) 

ticks = [ctime(1), ctime(2), ctime(3)] 
xtickpos = np.linspace(min(x), max(x), 3) 

plt.plot(x,y) 
plt.xticks(xtickpos, ticks) 
+0

私の実際のプログラムには何千もの測定点がありますが、私の場合は5ティック以上は非常に有益です。それらを均等に配布する方法はありませんか? –

+0

@Uzzeeより少ないxticksを作成する方法の私の最後の例を参照してください – Suever

+0

さて、私は理解していると思います。もともと私は、xtickposは、表示するx値の順番にしか対応していないと思っていました.1,2,2,3のように[1,2,3]のように表示されます。ありがとうございました! –

関連する問題