basho45
@basho45

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

pythonでのグラフ描画-0を境界としてバーチャートの色を変える方法-

Q&A

Closed

MACDを自作しようとしています。MACDの差を表すバーチャートの色を0を境界として色を変化させたいのですが、いまいちよくわかりません。

import matplotlib.pyplot as plt #描画ライブラリ
import pandas_datareader.data as web #データのダウンロードライブラリ
import numpy as np
import pandas as pd

tsd=web.DataReader('AAPL', "yahoo",'2019/1/1')#株価データのダウンロード

dates = []
dates_if=tsd.index.to_frame().reset_index(drop=True)
dates =dates_if["Date"]
volume = tsd["Volume"]

EMAの計算

ewm_short = tsd["Close"].ewm(span=12).mean()
ewm_long = tsd["Close"].ewm(span=24).mean()

MACDの計算

macd = ewm_short-ewm_long
macd_signal = macd.ewm(span=9).mean()

チャートの描画

macd_dif = macd - macd_signal
fig = plt.figure()
fig, ax1 = plt.subplots()
plt.bar(dates,macd_dif,width=3)
plt.xlabel("Date")
plt.ylabel("Adjusted")
plt.title("AAPL")
plt.style.use("dark_background")
plt.show()

よろしくお願いします。

0

1Answer

色の設定で1以下どうかを求めて、TrueとFalseで色分けします。

plt.bar(dates,macd_dif,width=3, color=(macd_dif > 0).map({True:'b',False:'r'}))

スクリーンショット 2020-10-04 13.09.41.png

0Like

Comments

  1. @basho45

    Questioner

    ありがとうございます。うまくいきました☺️

Your answer might help someone💌