我创建了一个生成烛台图表的程序,我遇到了问题。我的数据类型是库存,所以它只有工作日的数据。
所以在我绘制之后,它在烛台之间有空格。
如何删除这些?
这是我的绘图仪功能代码:
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)
答案 0 :(得分:1)
您可以设置xticks
个连续数字(0、1、2、3 ...最多为要绘制的蜡烛数),然后设置xticklabels
实际日期以实现更好的可视化。请参阅我对此question的回答以获取详细的实现。
答案 1 :(得分:0)
点击此链接:How do I plot only weekdays using Python's matplotlib candlestick?
这应该回答你的问题。我也在我的代码中使用它。
答案 2 :(得分:0)
尝试将其添加到您的代码中。
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)