用x值范围填充matplotlib的x和y值

时间:2019-01-21 21:28:06

标签: python matplotlib

我正在使用panda和matplotlib。我想用某种颜色来填充我的x轴和价格(又称收盘价)之间的空间。我将如何处理?我是python的初学者。

import datetime as dt
import pandas_datareader.data as web

import matplotlib.pyplot as plt
import pandas as pd


# Defining Axis
fig = plt.figure()
ax1 = plt.subplot2grid((1,1), (0,0)) 


# Data Section
start = dt.datetime(2017,1,1)
end   = dt.datetime(2018,1,1)


sp500 = web.DataReader("TSLA", "yahoo", start, end)
close = sp500['Adj Close']



# Axis Settings Section
ax1.fill_between(start, close, 0, color='grey')  #here is where I'm having issues. I think the issues im having partly involve the fact that im dealing with a range of dates
ax1.plot(close, label = 'price')
ax1.grid(True, color= 'lightgreen', linestyle= '-')
ax1.xaxis.label.set_color('dodgerblue')
ax1.yaxis.label.set_color('indianred')
ax1.set_yticks([0,100,200,300,400])                 




# Graph/Chart Settings
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.xticks(rotation=45)
plt.subplots_adjust(left=0.09, bottom=0.20, top=0.90, wspace=0.20, hspace=0.0)
plt.show()

2 个答案:

答案 0 :(得分:1)

尝试一下。您需要一个x值数组,而不仅仅是'start'中的一个标量值:

ax1.fill_between(sp500.index, close, 0, color='grey')  

输出:

enter image description here

答案 1 :(得分:0)

您可以尝试使用matplotlib.pyplot.fill_between()。 Doc:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.fill_between.html

编辑:我看到您已经在使用它。也许您应该在问题中包含问题,而不是在代码示例中。我会仔细看看是否可以找到解决方案。