Ich versuche, OHLC Candlestick-Diagramm (1Min) für einen kompletten Tag zu plotten und zeigen wollen 'Stunden' als Major Locator und Min als kleinere Locator. Stunden-Locator sollte als bis Ende der Daten angezeigt werden Major Locator 09:00 10:00 11:00 und so weiter.Probleme bei der Plotting Intraday OHLC Diagramm mit Matplotlib
Ich bin nicht in der Lage zu verstehen, welche Fehler ich tue und warum die Zeit ab 22.00 Uhr und EHTS- Kerzen sind nicht sichtbar.
Wenn Sie auch mit Volumen-Overlay auf Ohlc-Diagramm helfen können, wäre es eine große Hilfe. link to data file
from datetime import datetime, date, timedelta
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.gridspec as grd
from matplotlib.transforms import Bbox
from matplotlib.finance import candlestick_ohlc, volume_overlay3, volume_overlay
#from matplotlib.finance import candlestick
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY, HourLocator, MinuteLocator
import numpy as np
import pandas as pd
def plot_underlying_hft_data(filename):
#Read the data and filtered out the required rows and columns
print("Reading File.. ", filename)
tempdata = pd.read_csv(filename, index_col = ['Date'])
tempdata = tempdata.loc[(tempdata.index == '2016-09-16')]
tempdata['Datetime'] = pd.to_datetime(tempdata['Datetime'], format='%Y-%m-%d %H:%M:%S')
print(tempdata)
HourLocator
hour = HourLocator()
minute = MinuteLocator()
hourformatter = DateFormatter('%H:%M')
#tempdata['Datetime'] = tempdata['Datetime'].apply(lambda datetimevar : datetime)
tempdata['DatetimeNum'] = mdates.date2num(tempdata['Datetime'].dt.to_pydatetime())
quotes = [tuple(x) for x in tempdata[['DatetimeNum', 'Open', 'High', 'Low', 'Close', 'Volume']].to_records(index=False)]
#print(quotes)
title_name_ohlc = 'OHLC Intraday Chart'
#print(title_name_ohlc)
plt.figure(figsize = (12,6))
#plt.title(title_name_ohlc)
ax1 = plt.subplot2grid((1,1), (0,0), axisbg='w')
ax1.set_ylabel('Price', fontsize=12, fontweight = 'bold')
ax1.set_title(title_name_ohlc, fontsize=14, fontweight = 'bold')
ax1.set_ylabel('Price', fontsize=12, fontweight = 'bold')
ax1.set_title(title_name_ohlc, fontsize=14, fontweight = 'bold')
print(tempdata['DatetimeNum'].min(), tempdata['DatetimeNum'].max())
ax1.set_ylim(bottom = tempdata['DatetimeNum'].min(), top = tempdata['DatetimeNum'].max())
ax1.xaxis.set_major_locator(hour)
ax1.xaxis.set_minor_locator(minute)
ax1.xaxis.set_major_formatter(hourformatter)
#ax1.grid(True)
candlestick_ohlc(ax1, quotes, width=1, colorup='g', colordown='r', alpha = 1.0)
plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')
plt.show()
plot_underlying_hft_data("data.csv")
#print(tempdata.head(5))
Würden Sie Ihre Datei oder eine ähnliche Datei erneut hochladen? Der Link funktioniert nicht mehr. Ich stehe hier vor einem ähnlichen Problem. Vielen Dank. – StayFoolish