2016-04-14 5 views
2

私は、x軸が日付、y軸が時刻です。ポイントが上と下で切り取られないように、y軸にパディングを追加したいと思います。私はax.ylim([x,y])を最小値より少し小さく、最大値より少し小さく設定していると聞いたことがありますが、負の時間や25:00といったものは存在しないため、これは時間とともに不可能です。matplotlibの時間軸にパディングを追加する

これは、画像が今のように見えるものです: enter image description here

あなたが切断されて上下にポイントを見ることができるように。

ご協力いただければ幸いです!ここで

+0

は、この作業を行いますhttp://stackoverflow.com/questions/2969867/how-do-i-add-space-between-the-ticklabels-and-the-axes-in-matplotlib – Ben

+0

またはhttp://stackoverflow.com/questions/6406368/matplotlib-move-x軸ラベル - 下向きですがx軸の目盛りになりません – Ben

+0

あなたは自分でラベルを書くことができますが、それはあなたが要求していることをするでしょうが、あなたのプロットをあまり混雑させず、反対に(プロットのスペースが少なくなるよりもパッドを与えた場合)反対になりません。とにかくこのソリューションをお望みですか? – armatita

答えて

2

は、あなたが書くことができる方法であるあなたが愚かな値を持つ危険にさらすことなく、ラベル(およびデータへの追加の制限)方法:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.random.randint(2004,2017,500) 
y =np.clip(np.random.normal(13,7,500),0,24) 

plt.scatter(x,y) 
plt.xticks(range(2004,2017,3),[str(i) for i in range(2004,2017,3)],rotation=45) 
plt.yticks(range(0,24,3),[str(i)+':00' for i in range(0,24,3)]) 

plt.xlim(2002,2019) 
plt.ylim(-3,28) 
plt.show() 

は、結果は次のとおりです。

Controlling the labels to have a pad effect

+0

応答ありがとう!あなたのメソッドを使用して、スペースが動作しますが、私の値が消えます。それは私の値のdatetime.datetimeクラスを使用しているので、それはできますか? '日付= datetime.datetimeの(INT(日付[0:4])、INT(日付[5:7])、INT(日付[8時10分])) \t \t \t dateList.append(日付) \t \t \t timeThing = datetime.datetimeの(2016,1,1、時間、分) \t \t \t timeList.append(timeThing) \t plt.scatter(dateList、timeList、C = R '') \t plt.yticks(範囲(0,24,3)内のiに対して[str(i)+ ':00]) \t plt.ylim(-3,28) ' –

+0

@ConnerLeverett可能性があります。 'yticks'を' range(0,24,3) 'で定義する行では、rangeの代わりにiterableを入れてみてください。また、あなたのコード(インポートを含む)を質問に入れてください。コメントで読むのは難しいです。 – armatita

関連する問題