2017-03-31 回答
import matplotlib.pyplot as pltfrom matplotlib.dates import dateformatter, weekdaylocator, daylocator, monday,yearlyfrom matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlcplt.rcparams['font.sans-serif'] = ['simhei']plt.rcparams['axes.unicode_minus'] = falseticker = '600028' # 600028 是"中国石化"的股票代码ticker += '.ss' # .ss 表示上证 .sz表示深证date1 = (2015, 8, 1) # 起始日期,格式:(年,月,日)元组date2 = (2016, 1, 1) # 结束日期,格式:(年,月,日)元组mondays = weekdaylocator(monday) # 主要刻度alldays = daylocator() # 次要刻度#weekformatter = dateformatter('%b %d') # 如:jan 12mondayformatter = dateformatter('%m-%d-%y') # 如:2-29-2015dayformatter = dateformatter('%d') # 如:12quotes = quotes_historical_yahoo_ohlc(ticker, date1, date2)if len(quotes) == 0: raise systemexitfig, ax = plt.subplots()fig.subplots_adjust(bottom=0.2)ax.xaxis.set_major_locator(mondays)ax.xaxis.set_minor_locator(alldays)ax.xaxis.set_major_formatter(mondayformatter)#ax.xaxis.set_minor_formatter(dayformatter)#plot_day_summary(ax, quotes, ticksize=3)candlestick_ohlc(ax, quotes, width=0.6, colorup='r', colordown='g')ax.xaxis_date()ax.autoscale_view()plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')ax.grid(true)plt.title('中国石化 600028')plt.show()