溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Matplotlib基本的自定義有哪些

發(fā)布時(shí)間:2021-12-22 09:19:29 來源:億速云 閱讀:119 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(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é)果為:

Matplotlib基本的自定義有哪些

感謝各位的閱讀!關(guān)于“Matplotlib基本的自定義有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(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)容。

AI