質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

2990閲覧

移動平均線が上手くプロットできません。

doz13189

総合スコア38

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2016/08/06 09:13

###前提・実現したいこと
移動平均線を上手くプロットできません。
5日移動平均線と25日移動平均線をプロットしているのですが、直近の5日間と25日間が消えています。
通常はグラフの始まりの4日間と24日間が消えるはずなのですが、なぜか逆になってしまっています。

###発生している問題・エラーメッセージ

###該当のソースコード

def ochl(self): from matplotlib.finance import candlestick_ochl ax1 = plt.subplot() try: candlestick_ochl(ax1, self.data.values, width=0.7, colorup='#ff1e1e', colordown='#1eff1e') except TypeError: pass sma5 = pandas.rolling_mean(self.data['Adj Close'], window=5) sma25 = pandas.rolling_mean(self.data['Adj Close'], window=25) #plt.xticks(data['Date'][::5],[x.strftime('%Y-%m-%d') for x in data["Date"]][::5]) plt.xticks(self.data["Date"][::20], d[::20]) plt.grid() plt.plot(self.data["Date"], sma5, color="#1e8eff") plt.plot(self.data["Date"], sma25, color="#ff1e8e") filename_candle_day = self.code + "_candle_day.png" plt.savefig(filename_candle_day) return plt.show()#plt.clf()

###試したこと
プロットしているxの値がおかしいのかと考え、5日移動平均線(コード内ではsma5)を見てみても、ちゃんとはじめから4つまでの値がNaNになっています。

0 NaN 1 NaN 2 NaN 3 NaN 4 1057.4 5 1046.6 6 1030.0 7 1013.8 8 1008.2 9 1000.4 10 1012.0 11 1020.2 12 1023.8 13 1023.8 14 1017.8 15 1016.4 16 1026.8 17 1037.4 18 1043.8 19 1062.8 0 1068.6 1 1070.6 2 1078.0 3 1075.8 4 1062.6 5 1048.0 6 1024.4 7 991.0 8 979.6 9 975.4 ... 14 921.0 15 894.6 16 869.6 17 855.4 18 853.2 19 849.2 0 846.8 1 842.2 2 828.2 3 819.4 4 814.0 5 813.4 6 817.6 7 825.0 8 838.0 9 842.0 10 836.4 11 830.6 12 825.0 13 820.2 14 818.8 15 821.6 16 829.8 17 838.4 18 836.0 19 826.6 0 807.8 1 780.4 2 759.6 3 743.2 Name: Adj Close, dtype: float64

plt.plotがNaNを省いて、プロットしているのかとも思いましたが対処法がわかりません。
どうすれば、移動平均線が上手くプロットできるのでしょうか??

###補足情報(言語/FW/ツール等のバージョンなど)
python3.5
OS Ubuntu
matpllotlib

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

sma5のindexがおかしい気がします。通常であれば連番か日付順ではないでしょうか。
plt.plot としていると箇所は ax1.plot とした方がサブプロットを明示しているのでおすすめです。

投稿2017/09/01 10:40

driller

総合スコア720

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問