用plot畫二維圖像時(shí),默認(rèn)情況下的橫坐標(biāo)和縱坐標(biāo)顯示的值有時(shí)達(dá)不到自己的需求,需要借助xticks()和yticks()分別對(duì)橫坐標(biāo)x-axis和縱坐標(biāo)y-axis進(jìn)行設(shè)置。
巴州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),巴州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為巴州上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的巴州做網(wǎng)站的公司定做!
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()
此時(shí)的x軸和y軸都是只顯示偶數(shù),其它的奇數(shù)未顯示,這樣在展示實(shí)驗(yàn)效果或放入文章中都會(huì)影響其可讀性。
為了設(shè)置坐標(biāo)軸的值,增加其可讀性,有多種方法。這里介紹的是matplotlib的函數(shù)xticks()和yticks()。
擴(kuò)展資料
基本用法:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成x軸上的數(shù)據(jù):從-3到3,總共有50個(gè)點(diǎn)
x = np.linspace(-1, 1, 50)
# 定義一個(gè)線性方程
y1 = 2 * x + 1
# 定義一個(gè)二次方程
y2 = x ** 2
# 設(shè)置x軸的取值范圍為:-1到2
plt.xlim(-1, 2)
# 設(shè)置y軸的取值范圍為:-1到3
plt.ylim(-1, 3)
# 設(shè)置x軸的文本,用于描述x軸代表的是什么
plt.xlabel("I am x")
# 設(shè)置y軸的文本,用于描述y軸代表的是什么
plt.ylabel("I am y")
plt.plot(x, y2)
# 繪制紅色的線寬為1虛線的線條
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
# 顯示圖表
plt.show()
參考資料來源:
百度百科——plot
泰勒?qǐng)D繪制的核心思想是設(shè)計(jì)一個(gè)只有第一象限的極坐標(biāo),并將方差,相關(guān)系數(shù)進(jìn)行捆綁,通過轉(zhuǎn)化為極坐標(biāo)系坐標(biāo)進(jìn)行繪制。為了實(shí)現(xiàn)泰勒?qǐng)D的繪制,我設(shè)計(jì)了兩個(gè)函數(shù):
set_tayloraxes(fig, location=111) 和plot_taylor(axes, refsample, sample, args, *kwargs)
set_tayloraxes()函數(shù)用于建立一個(gè)泰勒?qǐng)D的坐標(biāo)系,這個(gè)自定義函數(shù)一般情況下不建議修改,每一個(gè)參數(shù)都是經(jīng)過多次調(diào)試得到的,很可能牽一發(fā)動(dòng)全身。因此,將繪圖部分的獨(dú)立成為了plot_taylor函數(shù)(),這部分函數(shù)較為簡(jiǎn)單,目的就是將需要繪圖的數(shù)據(jù),轉(zhuǎn)換為極坐標(biāo)系坐標(biāo),通過plot函數(shù)將散點(diǎn)打在泰勒?qǐng)D上,這個(gè)函數(shù)模塊較為簡(jiǎn)單,可以根據(jù)自己的輸入數(shù)據(jù)情況進(jìn)行調(diào)整。
下面介紹下函數(shù)的具體用法:
輸入:
fig: 需要繪圖的figure
rect:圖的位置,如111為1行1列第一個(gè),122為1行2列第2個(gè)
輸出:
polar_ax:泰勒坐標(biāo)系
輸入:
axes : setup_axes返回的泰勒坐標(biāo)系
refsample :參照樣本
sample :評(píng)估樣本
args, *kwargs :plt.plot()函數(shù)的相關(guān)參數(shù),設(shè)置點(diǎn)的顏色,形狀等等。
下面給出示例:
作者:邁克爾·貝耶勒(Michael Beyeler)
如需轉(zhuǎn)載請(qǐng)聯(lián)系華章 科技
如果已安裝Anaconda Python版本,就已經(jīng)安裝好了可以使用的 Matplotlib。否則,可能要訪問官網(wǎng)并從中獲取安裝說明:
正如使用np作為 NumPy 的縮寫,我們將使用一些標(biāo)準(zhǔn)的縮寫來表示 Matplotlib 的引入:
在本書中,plt接口會(huì)被頻繁使用。
讓我們創(chuàng)建第一個(gè)繪圖。
假設(shè)想要畫出正弦函數(shù)sin(x)的線性圖。得到函數(shù)在x坐標(biāo)軸上0≤x<10內(nèi)所有點(diǎn)的值。我們將使用 NumPy 中的 linspace 函數(shù)來在x坐標(biāo)軸上創(chuàng)建一個(gè)從0到10的線性空間,以及100個(gè)采樣點(diǎn):
可以使用 NumPy 中的sin函數(shù)得到所有x點(diǎn)的值,并通過調(diào)用plt中的plot函數(shù)把結(jié)果畫出來:
你親自嘗試了嗎?發(fā)生了什么嗎?有沒有什么東西出現(xiàn)?
實(shí)際情況是,取決于你在哪里運(yùn)行腳本,可能無法看到任何東西。有下面幾種可能性:
1. 從.py腳本中繪圖
如果從一個(gè)腳本中運(yùn)行 Matplotlib,需要加上下面的這行調(diào)用:
在腳本末尾調(diào)用這個(gè)函數(shù),你的繪圖就會(huì)出現(xiàn)!
2. 從 IPython shell 中繪圖
這實(shí)際上是交互式地執(zhí)行Matplotlib最方便的方式。為了讓繪圖出現(xiàn),需要在啟動(dòng) IPython 后使用所謂的%matplotlib魔法命令。
接下來,無須每次調(diào)用plt.show()函數(shù),所有的繪圖將會(huì)自動(dòng)出現(xiàn)。
3. 從 Jupyter Notebook 中繪圖
如果你是從基于瀏覽器的 Jupyter Notebook 中看這段代碼,需要使用同樣的%matplotlib魔法命令。然而,也可以直接在notebook中嵌入圖形,這會(huì)有兩種輸出選項(xiàng):
在本書中,將會(huì)使用inline選項(xiàng):
現(xiàn)在再次嘗試一下:
上面的命令會(huì)得到下面的繪圖輸出結(jié)果:
如果想要把繪圖保存下來留作以后使用,可以直接在 IPython 或者 Jupyter Notebook 使用下面的命令保存:
僅需要確保你使用了支持的文件后綴,比如.jpg、.png、.tif、.svg、.eps或者.pdf。
作為本章最后一個(gè)測(cè)試,讓我們對(duì)外部數(shù)據(jù)集進(jìn)行可視化,比如scikit-learn中的數(shù)字?jǐn)?shù)據(jù)集。
為此,需要三個(gè)可視化工具:
那么開始引入這些包吧:
第一步是載入實(shí)際數(shù)據(jù):
如果沒記錯(cuò)的話,digits應(yīng)該有兩個(gè)不同的數(shù)據(jù)域:data域包含了真正的圖像數(shù)據(jù),target域包含了圖像的標(biāo)簽。相對(duì)于相信我們的記憶,我們還是應(yīng)該對(duì)digits稍加 探索 。輸入它的名字,添加一個(gè)點(diǎn)號(hào),然后按Tab鍵:digits.TAB,這個(gè)操作將向我們展示digits也包含了一些其他的域,比如一個(gè)名為images的域。images和data這兩個(gè)域,似乎簡(jiǎn)單從形狀上就可以區(qū)分。
兩種情況中,第一維對(duì)應(yīng)的都是數(shù)據(jù)集中的圖像數(shù)量。然而,data中所有像素都在一個(gè)大的向量中排列,而images保留了各個(gè)圖像8×8的空間排列。
因此,如果想要繪制出一副單獨(dú)的圖像,使用images將更加合適。首先,使用NumPy的數(shù)組切片從數(shù)據(jù)集中獲取一幅圖像:
這里是從1797個(gè)元素的數(shù)組中獲取了它的第一行數(shù)據(jù),這行數(shù)據(jù)對(duì)應(yīng)的是8×8=64個(gè)像素。下面就可以使用plt中的imshow函數(shù)來繪制這幅圖像:
上面的命令得到下面的輸出:
此外,這里也使用cmap參數(shù)指定了一個(gè)顏色映射。默認(rèn)情況下,Matplotlib 使用MATLAB默認(rèn)的顏色映射jet。然而,在灰度圖像的情況下,gray顏色映射更有效。
最后,可以使用plt的subplot函數(shù)繪制全部數(shù)字的樣例。subplot函數(shù)與MATLAB中的函數(shù)一樣,需要指定行數(shù)、列數(shù)以及當(dāng)前的子繪圖索引(從1開始計(jì)算)。我們將使用for 循環(huán)在數(shù)據(jù)集中迭代出前十張圖像,每張圖像都分配到一個(gè)單獨(dú)的子繪圖中。
這會(huì)得到下面的輸出結(jié)果:
關(guān)于作者:Michael Beyeler,華盛頓大學(xué)神經(jīng)工程和數(shù)據(jù)科學(xué)專業(yè)的博士后,主攻仿生視覺計(jì)算模型,用以為盲人植入人工視網(wǎng)膜(仿生眼睛),改善盲人的視覺體驗(yàn)。 他的工作屬于神經(jīng)科學(xué)、計(jì)算機(jī)工程、計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)的交叉領(lǐng)域。同時(shí)他也是多個(gè)開源項(xiàng)目的積極貢獻(xiàn)者。
本文摘編自《機(jī)器學(xué)習(xí):使用OpenCV和Python進(jìn)行智能圖像處理》,經(jīng)出版方授權(quán)發(fā)布。
import matplotlib.pyplot as plt
x_values=list(range(11))? ?#x軸的數(shù)字是0到10這11個(gè)整數(shù)
y_values=[x**2forx inx_values]? ?#y軸的數(shù)字是x軸數(shù)字的平方
plt.plot(x_values,y_values,c='green')??#用plot函數(shù)繪制折線圖,線條顏色設(shè)置為綠色
plt.title('Squares',fontsize=24)? ?#設(shè)置圖表標(biāo)題和標(biāo)題字號(hào)
plt.tick_params(axis='both',which='major',labelsize=14)?#設(shè)置刻度的字號(hào)
plt.xlabel('Numbers',fontsize=14)??#設(shè)置x軸標(biāo)簽及其字號(hào)
plt.ylabel('Squares',fontsize=14)??#設(shè)置y軸標(biāo)簽及其字號(hào)
plt.show()
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
#從pyplot導(dǎo)入MultipleLocator類,這個(gè)類用于設(shè)置刻度間隔
x_values=list(range(11))
y_values=[x**2forx inx_values]
plt.plot(x_values,y_values,c='green')
plt.title('Squares',fontsize=24)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.xlabel('Numbers',fontsize=14)
plt.ylabel('Squares',fontsize=14)
x_major_locator=MultipleLocator(1)?#把x軸的刻度間隔設(shè)置為1,并存在變量里
y_major_locator=MultipleLocator(10)?#把y軸的刻度間隔設(shè)置為10,并存在變量里
ax=plt.gca()?#ax為兩條坐標(biāo)軸的實(shí)例
ax.xaxis.set_major_locator(x_major_locator)?#把x軸的主刻度設(shè)置為1的倍數(shù)
ax.yaxis.set_major_locator(y_major_locator)?#把y軸的主刻度設(shè)置為10的倍數(shù)
plt.xlim(-0.5,11)??#把x軸的刻度范圍設(shè)置為-0.5到11,因?yàn)?.5不滿一個(gè)刻度間隔,所以數(shù)字不會(huì)顯示出來,但是能看到一點(diǎn)空白
plt.ylim(-5,110)?#把y軸的刻度范圍設(shè)置為-5到110,同理,-5不會(huì)標(biāo)出來,但是能看到一點(diǎn)空白
plt.show()
轉(zhuǎn)自 跳轉(zhuǎn)鏈接
一、用默認(rèn)設(shè)置繪制折線圖
import matplotlib.pyplot as plt
x_values=list(range(11))
#x軸的數(shù)字是0到10這11個(gè)整數(shù)
y_values=[x**2 for x in x_values]
#y軸的數(shù)字是x軸數(shù)字的平方
plt.plot(x_values,y_values,c='green')
#用plot函數(shù)繪制折線圖,線條顏色設(shè)置為綠色
plt.title('Squares',fontsize=24)
#設(shè)置圖表標(biāo)題和標(biāo)題字號(hào)
plt.tick_params(axis='both',which='major',labelsize=14)
#設(shè)置刻度的字號(hào)
plt.xlabel('Numbers',fontsize=14)
#設(shè)置x軸標(biāo)簽及其字號(hào)
plt.ylabel('Squares',fontsize=14)
#設(shè)置y軸標(biāo)簽及其字號(hào)
plt.show()
#顯示圖表
制作出圖表
我們希望x軸的刻度是0,1,2,3,4……,y軸的刻度是0,10,20,30……,并且希望兩個(gè)坐標(biāo)軸的范圍都能再大一點(diǎn),所以我們需要手動(dòng)設(shè)置。
二、手動(dòng)設(shè)置坐標(biāo)軸刻度間隔以及刻度范圍
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
#從pyplot導(dǎo)入MultipleLocator類,這個(gè)類用于設(shè)置刻度間隔
x_values=list(range(11))
y_values=[x**2 for x in x_values]
plt.plot(x_values,y_values,c='green')
plt.title('Squares',fontsize=24)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.xlabel('Numbers',fontsize=14)
plt.ylabel('Squares',fontsize=14)
x_major_locator=MultipleLocator(1)
#把x軸的刻度間隔設(shè)置為1,并存在變量里
y_major_locator=MultipleLocator(10)
#把y軸的刻度間隔設(shè)置為10,并存在變量里
ax=plt.gca()
#ax為兩條坐標(biāo)軸的實(shí)例
ax.xaxis.set_major_locator(x_major_locator)
#把x軸的主刻度設(shè)置為1的倍數(shù)
ax.yaxis.set_major_locator(y_major_locator)
#把y軸的主刻度設(shè)置為10的倍數(shù)
plt.xlim(-0.5,11)
#把x軸的刻度范圍設(shè)置為-0.5到11,因?yàn)?.5不滿一個(gè)刻度間隔,所以數(shù)字不會(huì)顯示出來,但是能看到一點(diǎn)空白
plt.ylim(-5,110)
#把y軸的刻度范圍設(shè)置為-5到110,同理,-5不會(huì)標(biāo)出來,但是能看到一點(diǎn)空白
plt.show()
繪制結(jié)果
當(dāng)前標(biāo)題:plot函數(shù)python,plot函數(shù)坐標(biāo)軸范圍
標(biāo)題來源:http://jinyejixie.com/article18/dssdhgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、建站公司、域名注冊(cè)、定制網(wǎng)站、網(wǎng)站營(yíng)銷、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)