您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Matplotlib基本的自定義有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
在 Matplotlib 教程中,我們將討論一些可能的圖表自定義。 為了開始修改子圖,我們必須定義它們。 我們很快會(huì)談?wù)撍麄?,但有兩種定義并構(gòu)造子圖的主要方法。 現(xiàn)在,我們只使用其中一個(gè),但我們會(huì)很快解釋它們。
現(xiàn)在,修改我們的graph_data函數(shù):
def graph_data(stock): fig = plt.figure() ax1 = plt.subplot2grid((1,1), (0,0))1234
為了修改圖表,我們需要引用它,所以我們將它存儲(chǔ)到變量fig。 然后我們將ax1定義為圖表上的子圖。 我們?cè)谶@里使用subplot2grid,這是獲取子圖的兩種主要方法之一。 我們將深入討論這些東西,但現(xiàn)在,你應(yīng)該看到我們有 2 個(gè)元組,它們提供了(1,1)和(0,0)。 1,1表明這是一個(gè) 1×1 網(wǎng)格。 然后0,0表明這個(gè)子圖的『起點(diǎn)』將為0,0。
接下來,通過我們已經(jīng)編寫的代碼來獲取和解析數(shù)據(jù):
stock_price_url = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv' source_code = urllib.request.urlopen(stock_price_url).read().decode() stock_data = [] split_source = source_code.split('\n') for line in split_source: split_line = line.split(',') if len(split_line) == 6: if 'values' not in line and 'labels' not in line: stock_data.append(line) date, closep, highp, lowp, openp, volume = np.loadtxt(stock_data, delimiter=',', unpack=True, converters={0: bytespdate2num('%Y%m%d')})1234567891011121314
下面,我們這樣繪制數(shù)據(jù):
ax1.plot_date(date, closep,'-', label='Price')1
現(xiàn)在,由于我們正在繪制日期,我們可能會(huì)發(fā)現(xiàn),如果我們放大,日期會(huì)在水平方向上移動(dòng)。但是,我們可以自定義這些刻度標(biāo)簽,像這樣:
for label in ax1.xaxis.get_ticklabels(): label.set_rotation(45)12
這將使標(biāo)簽轉(zhuǎn)動(dòng)到對(duì)角線方向。 接下來,我們可以添加一個(gè)網(wǎng)格:
ax1.grid(True)1
然后,其它東西我們保留默認(rèn),但我們也可能需要略微調(diào)整繪圖,因?yàn)槿掌谂艿搅藞D表外面。 我們不僅可以以configure subplots按鈕方式配置圖表,我們還可以在代碼中配置它們,以下是我們?cè)O(shè)置這些參數(shù)的方式:
plt.subplots_adjust(left=0.09, bottom=0.20, right=0.94, top=0.90, wspace=0.2, hspace=0)1
現(xiàn)在,為了防止我們把你遺留在某個(gè)地方,這里是完整的代碼:
import matplotlib.pyplot as plt import numpy as np import urllib import matplotlib.dates as mdates def bytespdate2num(fmt, encoding='utf-8'): strconverter = mdates.strpdate2num(fmt) def bytesconverter(b): s = b.decode(encoding) return strconverter(s) return bytesconverter def graph_data(stock): fig = plt.figure() ax1 = plt.subplot2grid((1,1), (0,0)) stock_price_url = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv' source_code = urllib.request.urlopen(stock_price_url).read().decode() stock_data = [] split_source = source_code.split('\n') for line in split_source: split_line = line.split(',') if len(split_line) == 6: if 'values' not in line and 'labels' not in line: stock_data.append(line) date, closep, highp, lowp, openp, volume = np.loadtxt(stock_data, delimiter=',', unpack=True, converters={0: bytespdate2num('%Y%m%d')}) ax1.plot_date(date, closep,'-', label='Price') for label in ax1.xaxis.get_ticklabels(): label.set_rotation(45) ax1.grid(True)#, color='g', linestyle='-', linewidth=5) plt.xlabel('Date') plt.ylabel('Price') plt.title('Interesting Graph\nCheck it out') plt.legend() plt.subplots_adjust(left=0.09, bottom=0.20, right=0.94, top=0.90, wspace=0.2, hspace=0) plt.show() graph_data('TSLA')1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
結(jié)果為:
感謝各位的閱讀!關(guān)于“Matplotlib基本的自定義有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。