Python Matplotlib删除烛台上缺失数据的空间
我创建了一个生成烛台图的程序,但我有一个问题。我的数据类型是stock,所以它只有一个工作日的数据 所以在我画出来之后,它在烛台之间有空间 我怎样才能去掉这些 这是我的绘图仪功能代码:Python Matplotlib删除烛台上缺失数据的空间,python,matplotlib,candlestick-chart,Python,Matplotlib,Candlestick Chart,我创建了一个生成烛台图的程序,但我有一个问题。我的数据类型是stock,所以它只有一个工作日的数据 所以在我画出来之后,它在烛台之间有空间 我怎样才能去掉这些 这是我的绘图仪功能代码: ohlc = [] date = [] while (loop < candleLength) : date.append(dateToFloat(stockData['date'][loop])) append = date[loop], stockData['open'][loop],
ohlc = []
date = []
while (loop < candleLength) :
date.append(dateToFloat(stockData['date'][loop]))
append = date[loop], stockData['open'][loop], stockData['high'][loop], stockData['low'][loop], stockData['close'][loop]
ohlc.append(append)
loop += 1
fig = plt.figure()
ax = plt.subplot2grid((1,1), (0,0))
candlestick_ohlc(ax, ohlc, width=0.66, colorup='#4dff4d', colordown='#ff471a')
for label in ax.xaxis.get_ticklabels():
label.set_rotation(45)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
ax.xaxis.set_major_locator(mondays)
ax.grid(True)
ohlc=[]
日期=[]
而(循环<烛光长度):
date.append(dateToFloat(stockData['date'][loop]))
append=date[loop],stockData['open'][loop],stockData['high'][loop],stockData['low'][loop],stockData['close'][loop]
ohlc.追加(追加)
循环+=1
图=plt.图()
ax=plt.子图2Grid((1,1)、(0,0))
烛台(ax,ohlc,宽度=0.66,上色='4DF4D',下色='ff471a')
对于ax.xaxis.get_ticklabels()中的标签:
标签。设置旋转(45)
ax.xaxis.set\u major\u格式化程序(mdates.DateFormatter(“%Y-%m-%d”))
ax.xaxis.set\u major\u定位器(周一)
ax.grid(真)
查看此链接:
这应该能回答你的问题。我在代码中也使用它。尝试将其添加到代码中
def mydate(x,pos):
try:
return mdates[int(x)].strftime('%Y-%m-%d')
except IndexError:
return ''
ax.xaxis.set_major_formatter(ticker.FuncFormatter(mydate))
像这样:
import matplotlib.ticker as ticker
ohlc = []
date = []
while (loop < candleLength) :
date.append(dateToFloat(stockData['date'][loop]))
append = date[loop], stockData['open'][loop], stockData['high'][loop], stockData['low'][loop], stockData['close'][loop]
ohlc.append(append)
loop += 1
fig = plt.figure()
ax = plt.subplot2grid((1,1), (0,0))
candlestick_ohlc(ax, ohlc, width=0.66, colorup='#4dff4d', colordown='#ff471a')
for label in ax.xaxis.get_ticklabels():
label.set_rotation(45)
def mydate(x,pos):
try:
return mdates[int(x)].strftime('%Y-%m-%d')
except IndexError:
return ''
ax.xaxis.set_major_formatter(ticker.FuncFormatter(mydate))
ax.xaxis.set_major_locator(mondays)
ax.grid(True)
将matplotlib.ticker导入为ticker
ohlc=[]
日期=[]
而(循环<烛光长度):
date.append(dateToFloat(stockData['date'][loop]))
append=date[loop],stockData['open'][loop],stockData['high'][loop],stockData['low'][loop],stockData['close'][loop]
ohlc.追加(追加)
循环+=1
图=plt.图()
ax=plt.子图2Grid((1,1)、(0,0))
烛台(ax,ohlc,宽度=0.66,上色='4DF4D',下色='ff471a')
对于ax.xaxis.get_ticklabels()中的标签:
标签。设置旋转(45)
def mydate(x,位置):
尝试:
返回mdate[int(x)].strftime(“%Y-%m-%d”)
除索引器外:
返回“”
ax.xaxis.set\u major\u格式化程序(ticker.FuncFormatter(mydate))
ax.xaxis.set\u major\u定位器(周一)
ax.grid(真)
您可以设置xticks
序列号(0、1、2、3…最多为您要绘制的蜡烛数),然后设置xticklabels
实际日期,以实现更好的可视化效果。有关详细的实现,请参阅我的答案。数据格式化程序
旨在显示连续的日期范围,因此最好在不使用此选项的情况下绘制x轴。您应该在代码中包含示例数据,以便人们可以测试其解决方案欢迎使用so,我们感谢您的输入!请在你的回答中再加一些解释。