這篇文章給大家分享的是有關Matplotlib基本的自定義有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在 Matplotlib 教程中,我們將討論一些可能的圖表自定義。 為了開始修改子圖,我們必須定義它們。 我們很快會談論他們,但有兩種定義并構造子圖的主要方法。 現在,我們只使用其中一個,但我們會很快解釋它們。
現在,修改我們的graph_data函數:
def graph_data(stock): fig = plt.figure() ax1 = plt.subplot2grid((1,1), (0,0))1234
為了修改圖表,我們需要引用它,所以我們將它存儲到變量fig。 然后我們將ax1定義為圖表上的子圖。 我們在這里使用subplot2grid,這是獲取子圖的兩種主要方法之一。 我們將深入討論這些東西,但現在,你應該看到我們有 2 個元組,它們提供了(1,1)和(0,0)。 1,1表明這是一個 1×1 網格。 然后0,0表明這個子圖的『起點』將為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')})1234567891011121314
下面,我們這樣繪制數據:
ax1.plot_date(date, closep,'-', label='Price')1
現在,由于我們正在繪制日期,我們可能會發現,如果我們放大,日期會在水平方向上移動。但是,我們可以自定義這些刻度標簽,像這樣:
for label in ax1.xaxis.get_ticklabels(): label.set_rotation(45)12
這將使標簽轉動到對角線方向。 接下來,我們可以添加一個網格:
ax1.grid(True)1
然后,其它東西我們保留默認,但我們也可能需要略微調整繪圖,因為日期跑到了圖表外面。 我們不僅可以以configure subplots按鈕方式配置圖表,我們還可以在代碼中配置它們,以下是我們設置這些參數的方式:
plt.subplots_adjust(left=0.09, bottom=0.20, right=0.94, top=0.90, wspace=0.2, hspace=0)1
現在,為了防止我們把你遺留在某個地方,這里是完整的代碼:
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
結果為:
感謝各位的閱讀!關于“Matplotlib基本的自定義有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。