matplotlib 對(duì)坐標(biāo)的控制,加圖例注釋的操作
我們可以使用matplotlib.pyplot.locator_params()來(lái)控制刻度線定位器的行為。 即使通常會(huì)自動(dòng)確定標(biāo)記點(diǎn)的位置,但是如果我們想要繪制較小的標(biāo)記,則可以控制標(biāo)記點(diǎn)的數(shù)量并使用緊密的視圖:
from pylab import * import numpy as np ax = gca() ax.locator_params(tight = True, nbins = 10) ax.plot(np.random.normal(10, 0.1, 100)) show()
這應(yīng)該給我們下面的圖表:
然后我們可以使用matplotlib.dates.date2num(),matplotlib等助手函數(shù)。 dates.num2date()和matplotlib.dates.drange()在不同的表示之間轉(zhuǎn)換日期。
我們來(lái)看另一個(gè)例子:
from pylab import * import matplotlib as mpl import datetime fig = figure() ax = gca() start = datetime.datetime(2013, 1, 1) stop = datetime.datetime(2013, 12, 31) delta = datetime.timedelta(days = 1) dates = mpl.dates.drange(start, stop, delta) values = np.random.rand(len(dates)) ax = gca() ax.plot_date(dates, values, linestyle= '-', marker='') date_format = mpl.dates.DateFormatter('%Y-%m-%d') ax.xaxis.set_major_formatter(date_format) fig.autofmt_xdate() show()
上面的代碼會(huì)給我們下面的圖表:
添加圖例和注釋
圖例和注釋清楚地解釋數(shù)據(jù)圖。 通過(guò)給每個(gè)圖表分配一個(gè)關(guān)于它所代表的數(shù)據(jù)的簡(jiǎn)短描述,我們?cè)陂喿x者(觀眾)頭腦中啟用一個(gè)更簡(jiǎn)單的心智模型。 這個(gè)方法將顯示如何注釋我們的數(shù)字上的特定點(diǎn),以及如何創(chuàng)建和定位數(shù)據(jù)圖例。
讓我們來(lái)演示如何添加圖例和注釋:
if __name__ == '__main__': x1 = np.random.normal(30, 3, 100) x2 = np.random.normal(20, 2, 100) x3 = np.random.normal(10, 3, 100) plt.plot(x1, label = 'plot') plt.plot(x2, label = '2nd plot') plt.plot(x3, label = 'last plot') plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=3, mode='expand', borderaxespad=0.) plt.annotate('Important value', (55,20), xycoords='data', xytext=(5,38), arrowprops = dict(arrowstyle = '->')) plt.show()
上面的代碼會(huì)給我們下面的圖:
我們所做的就是為每個(gè)繪圖分配一個(gè)字符串標(biāo)簽,因此legend()將嘗試確定要在圖例框中添加的內(nèi)容。 我們通過(guò)定義loc參數(shù)來(lái)設(shè)置圖例框的位置。 這是可選的,但是我們想要指定一個(gè)位置,這個(gè)位置最不可能用于繪制圖例的圖例。 將位置值設(shè)置為0是非常有用的,因?yàn)樗鼤?huì)自動(dòng)檢測(cè)圖形的位置,圖例的位置可以與圖形重疊最小。
所有位置參數(shù)字符串在下表中給出:
如果不在圖例中顯示標(biāo)簽,請(qǐng)將標(biāo)簽設(shè)置為_(kāi)nolegend_。
對(duì)于圖例,我們定義了ncol = 3的列數(shù),并設(shè)置了左下角的位置。 我們指定了一個(gè)邊界框(bbox_to_anchor),從位置(0.,1.02)開(kāi)始,寬度為1,高度為0.102。 這些是標(biāo)準(zhǔn)化的坐標(biāo)軸。 參數(shù)模式為“None”或“expand”以允許圖例框水平放大軸區(qū)域。 參數(shù)borderaxespad定義軸和圖例邊界之間的填充。
對(duì)于注釋,我們已經(jīng)定義了一個(gè)字符串在坐標(biāo)xy上的圖上繪制。 坐標(biāo)系指定與數(shù)據(jù)1相同; 因此,坐標(biāo)系是xycoord ='data'。 文本的起始位置由xytext的值定義。
箭頭從xytext繪制到xy坐標(biāo),arrowprops字典可以定義該箭頭的許多屬性。 對(duì)于這個(gè)例子,我們用箭頭來(lái)定義箭頭樣式。
以上這篇matplotlib 對(duì)坐標(biāo)的控制,加圖例注釋的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python數(shù)據(jù)類(lèi)型可變不可變知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給各位整理的是關(guān)于python數(shù)據(jù)類(lèi)型可變不可變知識(shí)點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)下。2020-03-03Python自動(dòng)生成代碼 使用tkinter圖形化操作并生成代碼框架
這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)生成代碼,使用tkinter圖形化操作并生成代碼框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09用Python實(shí)現(xiàn)通過(guò)哈希算法檢測(cè)圖片重復(fù)的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)通過(guò)哈希算法檢測(cè)圖片重復(fù)的教程,這個(gè)方法被Iconfinder用作防盜版技術(shù),需要的朋友可以參考下2015-04-04python五子棋游戲的設(shè)計(jì)與實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了python五子棋游戲的設(shè)計(jì)與實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06利用 python 對(duì)目錄下的文件進(jìn)行過(guò)濾刪除
這篇文章主要給大家介紹了關(guān)于如何利用 python 對(duì)目錄下的文件進(jìn)行過(guò)濾刪除的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12