2017-07-18 11 views
0

こんにちは私は図の中に2行を表示しました。x軸は '2016-04-01'から '2017 -03-31 'の場合、グリッド線幅に表示される値は1か月、つまり30日ですが、幅のグリッド線に50日を設定します。私は、x軸の日付の値を表示したいという意味です:2016-04-01,2016-05-21,2016-07-10,2016-10-18,2016-12-07,2017-01- 26,2017-03-17。python2.7:図のx軸のグリッド線の値をプロットする方法

T

私のコードは以下の通りです:あなたはダニの位置を制御するためにDayLocatorを使用することができます

import seaborn as sn 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 


sn.set_style("darkgrid") 
xfmt = mdates.DateFormatter('%Y-%m-%d') 
fig = plt.figure(figsize=(15,4)) 
ax = fig.add_subplot(111) 
ax.xaxis.set_major_formatter(xfmt) 
lst_predictions = list(predictions2) 
len_predictions = len(lst_predictions) 
plt.plot(lst_index, list(test_y2), label = 'actual') 
plt.ylim(ymin=0) 
plt.ylim(ymax=140) 
plt.xlim([lst_index[0], lst_index[-1]]) 
plt.plot(lst_index, lst_predictions, label='pred') 

plt.legend(loc="upper left") 
plt.grid(True) 
+0

それは、グリッドの間隔50daysを取得するには、グリッドは、4月の最初に開始させることはかなり困難です。どちらも要件ですか? – ImportanceOfBeingErnest

+0

Apri 1stはlst_indexの最初の日付です。最初のインデックスはokです。はい、グリッドの間隔を50日にしたいと思います。 – tktktk0711

+0

両方の要件を同時に満たす方法がわからなくても、私は以下の答えを提示しました。最初のインデックスをマークし、毎月のティックを使用するか、または50日間のインターバルを持つことがより重要かを選択できます。 – ImportanceOfBeingErnest

答えて

2

xloc = mdates.DayLocator(interval=50) 
ax.xaxis.set_major_locator(xloc) 

通常、毎月の1日目と15日目に印を付ける場合に使用します。 50日は1ヶ月以上であるため、その場所は1か月で決めることはできません。インターバル引数を使用して、ティックを50日間appartにすることができます。しかし、出発点はむしろ任意です。

完全なコード:

import datetime 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 

start_date = datetime.date(2016, 04, 01) 
end_date = datetime.date(2017, 07, 01) 
date_list = [ start_date + datetime.timedelta(n) for n in range(int ((end_date - start_date).days))] 

values = np.cumsum(np.random.rand(len(date_list))-.5)+20 

fig, ax = plt.subplots(figsize=(15,4)) 

ax.plot(date_list, values, label = 'actual') 

xloc = mdates.DayLocator(interval=50) 
ax.xaxis.set_major_locator(xloc) 

xfmt = mdates.DateFormatter('%Y-%m-%d') 
ax.xaxis.set_major_formatter(xfmt) 

plt.legend(loc="upper left") 
plt.grid(True) 

plt.show() 

enter image description here

+0

あなたの仕事に感謝します! – tktktk0711

関連する問題