Python と Matplotlib を使用してリアルタイムのローソク足チャートを表示したい
これは私がしました
#!/usr/bin/env python
import time
import matplotlib.pyplot as plt
from matplotlib.pyplot import plot, draw, show
from matplotlib.finance import candlestick
from matplotlib.dates import date2num
from numpy import nan
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
#plt.ion()
#plt.ioff()
while True:
#plt.clf()
#ax = plt.gca()
opn = 104.04852126730329
close = np.random.uniform(90, 110)
high = max(opn, close)*np.random.uniform(1, 1.05)
low = min(opn, close)*np.random.uniform(0.95, 1)
DOCHLV = [[1, 100, 99, 101, 98, 0.0], [2, nan, nan, nan, nan, 0.0], [3, nan, nan, nan, nan, 0.0], [4, 104, 98, 105, 95, 0.0], [5, nan, nan, nan, nan, 0.0], [6, nan, nan, nan, nan, 0.0], [7, 100, 99.99976844819628, 100.91110690369828, 97.82248296015564, 1152.3258524820196], [8, 99.99976844819628, 100.51985544064271, 100.51985544064271, 96.65206230438159, 1578.5836411214814], [9, 100.51985544064271, 104.04852126730329, 104.54571702827914, 99.49632496479201, 1477.5651279091041], [10, opn, close, high, low, 372.6679262982206]]
print(DOCHLV)
#plt.close()
fig = plt.figure()
ax = fig.add_subplot(111)
_ = candlestick(ax, DOCHLV, width=0.8, colorup='g', colordown='r', alpha=1.0)
_ = ax.set_xlim(0, len(DOCHLV)+1)
#plt.show()
plt.show(block=False)
time.sleep(0.5)
残念ながら、ローソク足はいくつかの図に描かれています。
これを修正する方法はありますか?
私は削除しようとしました
fig = plt.figure()
ax = fig.add_subplot(111)
whileループから(同じ軸にプロットするため)、チャートは更新されません
plt. show(...) の代わりに plt. draw() も使用しようとしましたが、ウィンドウが表示されません
また、プロットする前に(前の)ウィンドウを閉じようとしました...しかし、そのような場合、チャートが点滅しています。