python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式
用matplotlib畫二維圖像時,默認(rèn)情況下的橫坐標(biāo)和縱坐標(biāo)顯示的值有時達(dá)不到自己的需求,需要借助xticks()和yticks()分別對橫坐標(biāo)x-axis和縱坐標(biāo)y-axis進(jìn)行設(shè)置。
import numpy as np import matplotlib.pyplot as plt x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.show()
x坐標(biāo)和y坐標(biāo)都表示1到12的整數(shù),不進(jìn)行坐標(biāo)設(shè)置時,執(zhí)行效果為:
此時的x軸和y軸都是只顯示偶數(shù),其它的奇數(shù)未顯示,這樣在展示實驗效果或放入文章中都會影響其可讀性。
為了設(shè)置坐標(biāo)軸的值,增加其可讀性,有多種方法。這里介紹的是matplotlib的函數(shù)xticks()和yticks()。
參考文檔:xticks()函數(shù)介紹 yticks()函數(shù)介紹
xticks()中有3個參數(shù):
xticks(locs, [labels], **kwargs) # Set locations and labels
locs參數(shù)為數(shù)組參數(shù)(array_like, optional),表示x-axis的刻度線顯示標(biāo)注的地方,即ticks放置的地方,上述例子中,如果希望顯示1到12所有的整數(shù),就可以將locs參數(shù)設(shè)置為range(1,13,1),第二個參數(shù)也為數(shù)組參數(shù)(array_like, optional),可以不添加該參數(shù),表示在locs數(shù)組表示的位置添加的標(biāo)簽,labels不賦值,在這些位置添加的數(shù)值即為locs數(shù)組中的數(shù)。
如下圖
import numpy as np import matplotlib.pyplot as plt x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks(x) plt.show()
xticks()函數(shù)中,locs參數(shù)為數(shù)組x,即1到12所有的整數(shù), 即畫出的圖像會在這12個位置畫出ticks,即上圖中的刻度線。
當(dāng)賦予labels的值為空時,則在locs決定的位置上雖然會畫出ticks,但不會顯示任何值。
import numpy as np import matplotlib.pyplot as plt x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks(x,()) plt.show()
其效果為:
該例子中,會明顯看到locs和labels的關(guān)系,locs表示位置,labels決定這些位置上的標(biāo)簽,labels的默認(rèn)值為和locs相同。
所以,對于labels參數(shù),我們可以賦予其任意其它的值,如人名,月份等等。
import numpy as np import matplotlib.pyplot as plt x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks(x, ('Tom','Dick','Harry','Sally','Sue','Lily','Ava','Isla','Rose','Jack','Leo','Charlie')) plt.show()
在每個標(biāo)簽會依次顯示labels中的人名:
還可以顯示月份:
import numpy as np import matplotlib.pyplot as plt import calendar x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60) plt.show()
顯示效果為:
這里添加了 calendar 模塊,用于顯示月份的名稱。calendar.month_name[1:13]即1月份到12月份每個月份的名稱的數(shù)組。后面的參數(shù)color='blue'表示將標(biāo)簽顏色置為藍(lán)色,rotation表示標(biāo)簽?zāi)鏁r針旋轉(zhuǎn)60度。
通過上個示例,可看出第3個參數(shù)關(guān)鍵字參數(shù)**kwargs用于控制labels,具體可通過Text屬性中的定義,添加到該參數(shù)中,關(guān)于其定義可參考在 Text 查詢。
另外,通過第1個參數(shù)locs可以看出,xticks()函數(shù)還可以用來設(shè)置使x軸上ticks隱藏,即將空數(shù)組賦予它,則沒有tick會顯示在x軸上,此處參考:x軸數(shù)值隱藏。
import numpy as np import matplotlib.pyplot as plt import calendar x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks([]) plt.show()
可看出x軸上沒有tick顯示:
同理,對于yticks()函數(shù)定義和xticks()函數(shù)定義完全相同。對于第一個例子,如果希望在y軸上的刻度線也顯示1到12所有的整數(shù),則將lens(1,13,1)賦予yticks()的locs參數(shù)即可:
import numpy as np import matplotlib.pyplot as plt import calendar x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks(x) plt.yticks(y) plt.show()
其效果為:
綜上,可以設(shè)計一個x軸為月份,y為星期的圖像:
import numpy as np import matplotlib.pyplot as plt import calendar from datetime import * x = range(1,13,1) y = range(1,13,1) plt.plot(x,y) plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60) today = datetime(2018, 9, 10) a=[] for i in range(12): a.append(calendar.day_name[today.weekday()+(i%7)]) plt.yticks(y,a,color='red') plt.show()
對應(yīng)一月份選擇星期一,二月份選擇星期二,往后依次類推,直至將12個月安排完。
以上這篇python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3 tkinter 實現(xiàn)文件讀取及保存功能
tkinter是一個跨平臺的GUI庫,開發(fā)的程序可以在win,linux或者mac下運行,tkinter是python自帶的GUI庫,是對圖形庫TK的封裝。本文通過實例代碼給大家介紹Python3 tkinter 實現(xiàn)文件讀取及保存功能,感興趣的朋友跟隨小編一起看看吧2019-09-09Python數(shù)組拼接np.concatenate實現(xiàn)過程
這篇文章主要介紹了Python數(shù)組拼接np.concatenate實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04Python異常處理與反射相關(guān)問題總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Python異常處理與反射展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python/MySQL實現(xiàn)Excel文件自動處理數(shù)據(jù)功能
在沒有服務(wù)器存儲數(shù)據(jù),只有excel文件的情況下,如何利用SQL和python實現(xiàn)數(shù)據(jù)分析和數(shù)據(jù)自動處理的功能?本文就來和大家聊聊解決辦法2023-02-02CentOS6.5設(shè)置Django開發(fā)環(huán)境
這篇文章主要為大家詳細(xì)介紹了CentOS6.5設(shè)置Django開發(fā)環(huán)境,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10在Qt5和PyQt5中設(shè)置支持高分辨率屏幕自適應(yīng)的方法
今天小編就為大家分享一篇在Qt5和PyQt5中設(shè)置支持高分辨率屏幕自適應(yīng)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python入門教程(四十三)Python的NumPy數(shù)據(jù)類型
這篇文章主要介紹了Python入門教程(四十二)Python的NumPy數(shù)組裁切,NumPy有一些額外的數(shù)據(jù)類型,并通過一個字符引用數(shù)據(jù)類型,例如 i 代表整數(shù),u 代表無符號整數(shù)等,需要的朋友可以參考下2023-05-05深入了解Python?Opencv數(shù)據(jù)增強
常見的數(shù)據(jù)增強操作有:按比例放大或縮小圖片、旋轉(zhuǎn)、平移、水平翻轉(zhuǎn)、改變圖像通道等。本文將通過Python?OpenCV實現(xiàn)這些操作,需要的可以參考一下2022-02-02