日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python cookbook 中文第四版_Python Cookbook (4)

發(fā)布時間:2025/3/20 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python cookbook 中文第四版_Python Cookbook (4) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 導(dǎo)入庫:import matplotlib.pyplot as plt

2. 傳入數(shù)據(jù):比如plt.plot([y1,y2...]),此時只傳入了一個數(shù)組,那么庫會假定傳入的是圖表的y值,于是將其跟一個序列的x值對應(yīng)起來,x取值為0、1、2、...

又比如plt.plot([x1,x2...],[y1,y2...]),此時傳入的是兩個數(shù)組,第一個數(shù)組為x軸上各數(shù)值,第二個數(shù)組為y軸上各數(shù)值

其實,[x1,x2...]和[y1,y2...]就是NumPy數(shù)組,可以直接把NumPy數(shù)組作為輸入數(shù)據(jù),同時數(shù)組經(jīng)過pandas處理后也無需進(jìn)一步處理,比如plt.plot(t,y1)

3. 繪制圖表:plt.show()

此外還可以繪制子圖,用subplot()函數(shù)先進(jìn)行區(qū)域設(shè)置,其中參數(shù)由3個連續(xù)整數(shù)組成,分別表示垂直方向、水平方向被分成幾部分以及可以直接用命令控制的子圖

# 比如要分成上下兩個子圖,則先plt.subplot(211)然后繪制第一個,接著plt.subplot(212)然后繪制第二個

# 再比如要分成左右兩個子圖,則先plt.subplot(121)然后繪制第一個,接著plt.subplot(122)然后繪制第二個

4. 修飾圖表元素:

(1) 帶顏色的數(shù)據(jù)點:比如'ro'紅色圓點,'b*'藍(lán)色星星點,'g^'綠色正三角點,'ys'黃色正方形點等等,就是'顏色+形狀'做參數(shù)加到plt.plot()里頭去就行了

# 注意默認(rèn)的是實線,如果用了這個參數(shù),圖表里面就沒實線了,全是點。對于顏色,還有:'c'藍(lán)綠色、'm'洋紅、'k'黑色、'w'白色

(2) 帶顏色的其他線型:比如'b--'是藍(lán)色虛線,'r-.'紅色點線等等

(3) 改變線條粗細(xì):增加參數(shù)linewidth,比如設(shè)置linewidth=2.0

(4) axis():定義x軸和y軸的取值范圍,plt.axis([xmin,xmax,ymin,ymax]) # 一般提前進(jìn)行的,比如不合理的軸取值可能會讓數(shù)據(jù)點在邊緣

(5) title():為圖表增加標(biāo)題,plt.plot('My first plot')

(6) xlabel()和ylabel():添加軸標(biāo)簽

# 對于(4)~(6),還可以參加參數(shù)來修改文本屬性,比如fontsize=20、fontname='Times New Roman'、color='gray'

(7) text():為各個數(shù)據(jù)點添加標(biāo)簽,它有四個參數(shù)text(x,y,s,fontdict=None,**kwargs),其中x,y,s表示三維坐標(biāo)點,如果兩維則x,y即可,fontdict為文本要使用的字體,**kwargs為要添加的標(biāo)簽

比如plt.text(1,1.5,'First')則為數(shù)據(jù)點(1,1.5)添加了字符串標(biāo)簽First,fontdict參數(shù)如果沒特別要求可以不管

此外,text()中還能支持latex表達(dá)式,即**kwargs處添加r'$y=x^2$',注意3點,一是用r開頭,二是用''引用,三是用$$界定公式范圍

(8) grid():添加網(wǎng)格,用plt.grid(True)即可

(9) legend():添加圖例,比如:plt.plot([1,2],[2,3],'ro') plt.plot([2,3],[1,2],'b*') plt.legend(['First series','Second series'])

意思就是分別給'ro'和'b*'兩個數(shù)據(jù)集添加圖例(圖例實際上就是在圖標(biāo)里弄個小框標(biāo)注哪些線或點表示什么意思)

legend()函數(shù)默認(rèn)為1,即右上角添加,還可以添加關(guān)鍵字參數(shù)loc來指定,loc取值從0~10分別表示最佳位置、右上角、左上角、右下角、左下角、右側(cè)、左側(cè)垂直居中、右側(cè)垂直居中、下方水平居中、上方水平居中、正中間

5. 保存圖片:plt.savefig('圖片名.png') # 切記在最后一行使用

6. 處理日期值:如果讓matplotlib自動管理可讀,會在時間軸(x軸)出現(xiàn)不清晰,很混亂,所以要人為設(shè)置時間格式

有set_major_locator()、set_minor_locator()、set_major_formatter()等函數(shù),需要的時候網(wǎng)上copy一段代碼即可,這波操作有代碼片段滴!

7. 畫線形圖:

(1) 繪制由數(shù)學(xué)函數(shù)生成的數(shù)據(jù)點:比如x=np.arange(-2*np.pi,2*np.pi,0.01) y=np.sin(3*x)/x,還是得先單獨指定x范圍

# 注意上面這個例子,x的范圍是-2pi~2pi,但刻度標(biāo)簽?zāi)J(rèn)使用數(shù)值形式,如果要用pi的倍數(shù)代替數(shù)值,則以下代碼操作一波

# plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$-np.pi$',r'$0$',r'$+\pi$',r'$+2\pi$']),格式就是兩個列表,后面那個用latex表達(dá)式,且套上獨有的界定符

# 如果要修改縱軸,使用yticks()函數(shù)即可

(2) 繪制一系列數(shù)據(jù)點:需要創(chuàng)建兩個NumPy數(shù)組,一個包含x值,另一個包含每個x值所對應(yīng)的y值

(3) 讓x,y軸穿過(0,0)的方法:(下面實際是一大段代碼,沒咋看懂...)

ax=plt.gca() ax=spines['right'].set_color('none') ax=spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom')

ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0))

(4) 注釋+箭頭標(biāo)明曲線上某一數(shù)據(jù)點:

plt.annotate(r'&Latex表達(dá)式&'或'字符串',xy=[注釋數(shù)據(jù)點的x坐標(biāo),注釋數(shù)據(jù)點的y坐標(biāo)],xycoords='data',xytext=[30,30],fontsize=16,textcoords='offset points',arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))

# 參數(shù)比較繁瑣,最后的效果就是這個表達(dá)式或字符串伸個箭頭指向要曲線上要注釋的這個數(shù)據(jù)點的位置

(5) 為DataFrame繪制線形圖:直接一個plot(),就按每個索引同時呈現(xiàn)多條曲線的,再來個legend()函數(shù),則會以索引名為圖例名添加相應(yīng)個圖例

8. 畫直方圖:hist()函數(shù),比如:n,bins,patches=plt.hist(pop,bins=20)

# 其中pop是數(shù)據(jù),pop=np.random.randint(0,100,100),bins參數(shù)指定了將樣本個體分到多少個面元中,如果未指定,則默認(rèn)為10個面元

# hist()函數(shù)除了以圖表形式表示外,還能以元組形式返回,也就是上面的n,bins,patches,返回成(n,bins,patches)

9. 畫條狀圖:

(1) 一般條狀圖:

(a) 垂直:bar()函數(shù),如plt.bar(index,values),其中index和values是指定的兩個列表,分別作為圖表中的x軸和y軸的值,各x值顯示在每個條形塊的左下角

plt.xticks(index+0.4,['A','B','C','D','E']),讓x值顯示從左下角到居中,并將x顯示值換成A到E,即標(biāo)簽

增加誤差線元素:plt.bar(index,values,yerr=std1,error_kw={'ecolor':'0.1','capsize':6},alpha=0.7,label='First')

其中ecolor指定誤差線的顏色,capsize指定誤差線兩頭橫線的寬度,alpha取值為0~1,0表示對象完全透明

(b) 水平:barh()函數(shù),其用法和bar()類似,但需要注意的是,水平條狀圖中,類別分布在y軸,數(shù)值顯示在x軸

(2) 多序列條狀圖:

(a) 需要多少個序列共用一個類別,則把每個類別占據(jù)的空間分為多少個部分即可

比如默認(rèn)每個類別空間寬度為1:bw=0.3 plt.bar(index,values1,bw,color='b') plt.bar(index+bw,values2,bw,color='g') plt.bar(index+2*bw,values3,bw,color='r')就ok了

接著上述例子,同樣可以plt.xticks(index+1.5*bw,['A','B','C','D','E']),index后面加上的增量要講究以下

如果要生成水平方向的,用barh()即可,參數(shù)用法等一樣噠

(b) 為DataFrame繪制多序列條狀圖:可以快速完成,實現(xiàn)自動化,df.plot(kind='bar')就ok了,其中df=pd.DataFrame(data),做好的圖自動添加圖例

同樣,水平則kind='barh'即可,美滋滋!

(3) 多序列堆積條狀圖: # 比如想表示總和是由幾個條狀圖相加得到的,就用它啦!

(a) s1,s2,s3是三個numpy序列,則plt.bar(index,s1,color='r') plt.bar(index,s2,color='b',bottom=s1) plt.bar(index,s3,color='g',bottom=(s2+s1)) 就OK了,關(guān)鍵就是在bottom參數(shù)

水平的殊途同歸,bar()換成barh()就OK了 # 同時應(yīng)當(dāng)注意,水平的“x軸”相應(yīng)變到了y上,所以原本的xticks()也要換成yticks()

(b) 為DataFrame繪制堆積條狀圖:df.plot(kind='bar',stacked=True)即可,df是DataFrame對象

(4) 其他條狀圖:

(a) 前面都是用顏色填充,實際上還可以用不同陰影填充,先把條狀圖顏色設(shè)置成白色,然后用hatch關(guān)鍵字參數(shù)指定影線的類型

不同影線用不同的字符(|、/、-、\、*)表示,且同一符號出現(xiàn)的次數(shù)越多,則形成的陰影的線條越密集,比如///就比//密集

(b) 兩列有著共同類別的數(shù)據(jù),其條狀圖分列于x軸兩側(cè),分別向+y和-y生長,比如以下這段代碼:

plt.ylim(-7,7)

plt.bar(x0,y1,0.9,facecolor='r',edgecolor='w')

plt.bar(x0,-y2,0.9,facecolor='b',edgecolor='w')

plt.xticks(())

plt.grid(True)

for x,y in zip(x0,y1):plt.text(x+0.4,y+0.05,'%d'%y,ha='center',va='bottom')

for x,y in zip(x0,y2):plt.text(x+0.4,-y-0.05,'%d'%y,ha='center',va='top')

# 其中 x0,y1,y2分別是np數(shù)組。這段code先記下,來日方長

10. 畫餅圖:

(1) labels=['A','B','C'] values=[1.2.3] colors=['yellow','green','red']

plt.pie(values,labels=labels,colors=colors)

plt.axis('equal') # 為了繪制標(biāo)準(zhǔn)的圓形圖餅,還需要在代碼最后調(diào)用axis()函數(shù)

同時還可以添加很多參數(shù),explode表示某塊是否突出,其取值為0~1,0表示沒有抽取;startangle用來調(diào)整餅圖的旋轉(zhuǎn)角度,取值為0~360;

autopct在每一塊的中間位置添加文本標(biāo)簽來顯示百分比;shadow用來添加陰影效果,設(shè)置為True即可

這樣一來:plt.pie(values,labels=labels,colors=colors,explode=explode,shadow=True,autopct='%1.1f%%',startangle=180),其中explode=[0.3,0,0]

(2) 為DataFrame繪制餅圖:df['s1'].plot(kind='pie',figsize=(6,6)),其中為了繪制一個標(biāo)準(zhǔn)的圓形餅圖就有必要添加figsize關(guān)鍵字,df['s1']則只講DataFrame對象中的s1序列做成圖

11. 畫等值線圖:

X,Y=np.meshgrid(x,y)

def f(x,y):return (1-y**5+x**5)*np.exp(-x**2-y**2)

C=plt.contour(X,Y,f(X,Y),8,colors='black') # 用contour()函數(shù)生成三維結(jié)構(gòu)表面的等值線圖

plt.contourf(X,Y,F(X,Y),8)

plt.clabel(C,inline=1,fontsize=10)

plt.colorbar() # 增加圖例作為對圖表中所有顏色的說明

12. 畫極區(qū)圖: # 可以將其視作兼有餅圖和條狀圖特點的圖表

theta=np.arange(0.,2*np.pi,2*np.pi/N) # 這里是平均分配的,實際上可以按照它們所占比例來分配角度,就和餅圖一樣,所以說它兼顧了餅圖的特征

radii=np.array([4,7,5,3,1,5,6,7]) # 這里體現(xiàn)了極區(qū)圖兼顧條狀圖的特點

plt.axes([0.025,0.025,0.95,0.95],polar=True)

colors=np.array(懶得敲代碼了)

bars=plt.bar(theta,radii,width=(2*np.pi/N),bottom=0.0,color=colors) # 使用bar函數(shù),然后注意各個參數(shù)

總結(jié)

以上是生活随笔為你收集整理的python cookbook 中文第四版_Python Cookbook (4)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品第1页 | 欧美日韩一区二区三区不卡 | 久久久久无码国产精品一区 | 日本在线不卡一区二区 | 亚洲v欧美v另类v综合v日韩v | 蜜乳av一区 | 国产日韩不卡 | 成年人的天堂 | 中文字幕精品三级久久久 | 日韩一级片免费观看 | 亚洲福利小视频 | 海角国产乱辈乱精品视频 | av青娱乐 | 中日韩精品一区二区三区 | 一本色道久久综合亚洲精品按摩 | 少妇一区二区三区四区 | 日本一区免费 | 亚洲综合色一区二区 | 污网站免费在线观看 | 91蝌蚪在线 | 欧美日韩色 | 国产又粗又长又黄的视频 | 怡红院一区二区 | 久久视频在线观看 | 精品国产一区二区三区四区 | 国产精品99久久免费黑人人妻 | 久久九九综合 | 天天躁日日躁狠狠躁 | 精品人妻一区二区三区视频 | 亚洲欧美另类在线视频 | 羞羞的网站在线观看 | 日本在线播放视频 | 日本三级456 | 中文字幕一区二区三区又粗 | 国产日批视频在线观看 | 欧美日本久久 | 韩国三级中文字幕hd久久精品 | 国产在线综合视频 | 欧美13p| 精品国产免费人成在线观看 | 欧美日韩中文字幕一区二区三区 | 好爽快一点高潮了 | 超碰91在线观看 | 国产黄a三级三级三级看三级男男 | 国产曰肥老太婆无遮挡 | 特级丰满少妇一级aaaa爱毛片 | 国产欧美日韩一区二区三区 | 狼人色综合 | 视频免费在线观看 | 99热com| 国产专区视频 | 精品国产乱码一区二区三区99 | 欧美大片在线观看 | 国产久一 | 国产精品一二三区在线观看 | 色婷婷av一区二区三区麻豆综合 | 久久精品大片 | 成人人伦一区二区三区 | 少妇激情一区二区三区 | 果冻传媒18禁免费视频 | 美国做爰xxxⅹ性视频 | 国产午夜精品久久久 | 五月天综合激情网 | 色无极亚洲影院 | 国产成人短视频在线观看 | 婷婷深爱网 | 精品+无码+在线观看 | 无码无遮挡又大又爽又黄的视频 | 国产亚洲精品久久久久久青梅 | 日韩毛片高清在线播放 | 亚洲一二三四在线 | 少妇激情一区二区三区视频 | 538精品在线视频 | 亚洲av无码专区在线 | 欧美xxxx18 | 99re5| 成人久久一区二区 | 国产1区二区 | 日本成人在线视频网站 | 中国女人内96xxxxx | 色com| 一级视频在线播放 | 中文字幕在线免费 | 欧美性插视频 | 重囗味sm一区二区三区 | 欧美日韩中日 | 激情av小说 | 亚洲电影影音先锋 | 欧美高清日韩 | 少妇久久久久 | av天堂一区二区三区 | 亚洲精品911 | 欧美日本国产在线 | 亚洲av成人精品毛片 | 激情综合网五月激情 | 天堂中文网 | 古装做爰无遮挡三级视频 | 亚洲精品视频在线观看免费 | 午夜啪啪网 |