gpt4 book ai didi

python - Matplotlib - 填充问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:26 24 4
gpt4 key购买 nike

我正在尝试使用 matplot lib 进行一些基本的股票绘图,但我很难尝试填充绘图的成交量部分。

我试图在两个单独的图表(一个在另一个之上)中绘制股票价格和交易量。当我绘制 2 条直线(代码中的 ATTEMPT 1)时,它看起来很好 - 正如您所期望的。

当我尝试填充成交量线下方(代码中的 ATTEMPT 2)时,价格图看起来完全被压缩成大约 5 像素宽,而第二个成交量图中没有任何内容。

我认为这与 x 轴(日期)系列有关,因为它在 ATTEMPT 2 中唯一明确设置。

此外,我尝试在具有双轴的单个图表中绘制相同的数据。我仅在单个图表中得到相同的结果。我假设相同的解决方案可以解决两种类型图表的问题?

另外,有人可以告诉我如何缩小 y 轴的比例吗?

我错过了什么?

谢谢!

import datetime
import numpy as np
import matplotlib.colors as colors
import matplotlib.finance as finance
import matplotlib.dates as mdates
import matplotlib.ticker as mticker
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager

# get the stock data
fh = finance.fetch_historical_yahoo('AAPL', (2007, 2, 12), (2011, 2, 12))
r = mlab.csv2rec(fh)
fh.close()
r.sort()


# *** ATTEMPT 1: 2 standard line plots ******************************
f, (ax1, ax2) = plt.subplots(2, sharex=True, sharey=False)
ax1.plot(r.close)
ax2.plot(r.volume)
f.subplots_adjust(hspace=0)


# *** ATTEMPT 2: Fill the volume plot *******************************
f, (ax1, ax2) = plt.subplots(2, sharex=True, sharey=False)
ax1.plot(r.close)
ax2.fill_between(r.date,0, r.volume, facecolor='#0079a3', alpha=0.4)
f.subplots_adjust(hspace=0)
plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False)

最佳答案

由于链接了两个 x 轴,因此它们应该共享相同的 x 轴数据。使用 plot(x,y) 语法而不是 plot(y) 应该可以解决问题。

f, (ax1, ax2) = plt.subplots(2, sharex=True, sharey=False)
ax1.plot(r.date,r.close)
ax2.fill_between(r.date,0, r.volume, facecolor='#0079a3', alpha=0.4)
f.subplots_adjust(hspace=0)

关于python - Matplotlib - 填充问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com