首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Matplotlib Volume_overlay

Python Matplotlib Volume_overlay
EN

Stack Overflow用户
提问于 2017-07-01 09:28:38
回答 1查看 1K关注 0票数 0

我正在尝试制作一个典型的金融OHLC图,其中有一个子图,其中有一个体积条形图。我尝试使用volume_overlay2函数,但它似乎是从x轴上的0开始绘制体积(见下图):

我的问题是,有没有一种方法可以强制数据相应地在OHLC下绘制,或者有一种方法可以将体积图沿着x轴移动到适当的位置?

我尝试使用'Date'作为df_voldf_close的索引,但仍然不起作用。请在下面找到我使用的代码:

代码语言:javascript
复制
import matplotlib.pyplot as plt
from matplotlib import style
import quandl
from matplotlib.finance import volume_overlay2, candlestick_ohlc
import matplotlib.dates as mdates

style.use('ggplot')


rawdf = quandl.get("BITFINEX/BTCUSD")

df_ohlc = rawdf.drop(["Mid", "Bid", "Ask"], 1)
df_ohlc["Open"] = rawdf.Last.shift(1)
df_ohlc.rename(columns = {"Last":"Close"}, inplace = True)
df_ohlc.reset_index(inplace = True)
df_ohlc['Date'] = df_ohlc['Date'].map(mdates.date2num)
df_ohlc.dropna(inplace = True)
df_ohlc = df_ohlc[['Date','Open', 'High', 'Low', 'Close', 'Volume']]
df_close = df_ohlc['Close']
df_vol = df_ohlc['Volume']

fig = plt.figure()
ax1 = plt.subplot2grid((6,1), (0,0), rowspan = 5, colspan = 1)
ax2 = plt.subplot2grid((6,1), (5,0), rowspan = 1, colspan = 1, sharex = ax1)

#ax1.set_xlim(df_ohlc['Date'].iloc[0], df_ohlc['Date'].iloc[-1])

candlestick_ohlc(ax1, df_ohlc.values, colorup = 'g', colordown = 'r', width = 0.8)
vc = volume_overlay2(ax2, df_close, df_vol.values, colorup = 'g', colordown = 'r', width = 0.8, alpha = 1.0)
ax2.add_collection(vc, autolim = True)


plt.show()
EN

回答 1

Stack Overflow用户

发布于 2018-05-29 21:57:02

看看:Matplotlib - Finance volume overlay

这个问题可能对你有用。如今,matplotlib中的金融模块已被弃用,取而代之的是一种名为mpl_finance的解决方案。但它不在维护中,所以上一个包中的问题仍然没有解决方案。我试图合并overlay命令,但它的problems...So与我选择用来实现那篇文章中描述的解决方案的problems...So相同。我希望给你一个解决你的问题的方案。

我用熊猫,一切都很好。除了……我不知道如何确定我们为体积创建的轴的大小(twinx())。我试过Bbox,但没有成功...问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44856589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档