簡體   English   中英

mpl_finance 刪除燭台 Python 上的空日期

[英]mpl_finance remove empty dates on Candlestick Python

我正在使用 DataFrame。 我的數據用於燭台。 問題是我無法刪除周末日期。 我的意思是,我的代碼顯示了這一點:在此處輸入圖像描述

我正在尋找這個:在此處輸入圖像描述

這是我的代碼:

import matplotlib.ticker as ticker
import pandas as pd  
import numpy as np
import matplotlib.pyplot as plt
from mpl_finance import candlestick_ohlc
df = pd.read_csv('AAPL.csv')
df['Date'] = pd.to_datetime(df['Date'])
df["Date"] = df["Date"].apply(mdates.date2num)
dates = df['Date'].tolist()
ohlc = df[['Date', 'Open', 'High', 'Low','Close']]
f1, ax = plt.subplots(figsize = (12,6))
candlestick_ohlc(ax, ohlc.values, width=.5, colorup='green', colordown='red')
ax.xaxis.set_major_locator(ticker.MultipleLocator(1.0))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.setp(ax.get_xticklabels(), rotation=70, fontsize=7)
close = df['Close'].values
plt.plot(dates,close, marker='o')
plt.show()

數據框:

Date,Open,High,Low,Close,Adj Close,Volume
2019-02-04,167.410004,171.660004,167.279999,171.250000,170.518677,31495500
2019-02-05,172.860001,175.080002,172.350006,174.179993,173.436157,36101600
2019-02-06,174.649994,175.570007,172.850006,174.240005,173.495911,28239600
2019-02-07,172.399994,173.940002,170.339996,170.940002,170.210007,31741700
2019-02-08,168.990005,170.660004,168.419998,170.410004,170.410004,23820000
2019-02-11,171.050003,171.210007,169.250000,169.429993,169.429993,20993400
2019-02-12,170.100006,171.000000,169.699997,170.889999,170.889999,22283500
2019-02-13,171.389999,172.479996,169.919998,170.179993,170.179993,22490200
2019-02-14,169.710007,171.259995,169.380005,170.800003,170.800003,21835700
2019-02-15,171.250000,171.699997,169.750000,170.419998,170.419998,24626800
2019-02-19,169.710007,171.440002,169.490005,170.929993,170.929993,18972800
2019-02-20,171.190002,173.320007,170.990005,172.029999,172.029999,26114400
2019-02-21,171.800003,172.369995,170.300003,171.059998,171.059998,17249700
2019-02-22,171.580002,173.000000,171.380005,172.970001,172.970001,18913200
2019-02-25,174.160004,175.869995,173.949997,174.229996,174.229996,21873400
2019-02-26,173.710007,175.300003,173.169998,174.330002,174.330002,17070200
2019-02-27,173.210007,175.000000,172.729996,174.869995,174.869995,27835400
2019-02-28,174.320007,174.910004,172.919998,173.149994,173.149994,28215400

這是“不夠”的解決方案,但我可以為您推薦一些東西。

只需使用

import mplfinance as mpf


mpf.plot(df, type='candle')

這會自動忽略情節中的非交易日,讓我更開心一點,盡管我不能完全滿意。 我希望這會幫助你。

看一下這個。

https://github.com/matplotlib/mplfinance#basic-usage

您可以在處理之前將其從數據框中切片

請檢查此鏈接從熊貓數據框中刪除非工作日行

不要使用日期/時間作為索引,而是使用蠟燭編號作為索引。 那么您的數據將變得連續,並且您不會中斷時間序列。 因此,使用蠟燭編號作為索引,用於繪制您需要繪制的數據而不是日期/時間一個情節..但是你會再次有差距。

嘗試過濾您的數據框。

df = df[df.Open.notnull()]

將此添加到您的情節中。

show_nontrading=False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM