最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

matplotlib學習筆記

2023-06-21 19:04 作者:貍貓撲撲  | 我要投稿

data-visualization

1.matplotlib學習之基本使用

1.1figure學習

import? matplotlib.pyplot as plt?????????? #導入包

import numpy as np

?

x=np.linspace(-3,3,50)?????????????????????????? #產生-33之間50個點

?

y1=2*x+1?????????????????????????????????????????????? #定義函數(shù)

y2=x**2

?

#同時顯示多張圖時,在每一句 plt.plot(x,y) 前邊添加 plt.figure() ,就可以畫出多張圖

plt.figure()

plt.plot(x,y1) ??????????????????????????????????????? # 繪制直線

plt.figure(num=3,figsize=(8,5)) 如果上述figure函數(shù)的參數(shù)為空,即plt.figure(),那么圖片名字默認為1,23...指定了num=3 or 其他數(shù)值后,圖片編號為指定的編號;figsize,圖片長和寬。

?

# 紅色虛線直線寬度默認1.0(線的樣式)

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')

1.2設置坐標軸

plt.xlim((-1,2))????????????????? #設置x軸范圍

plt.ylim((-2,3))????????????????? #設置軸y范圍

?

#設置坐標軸含義, 注:英文直接寫,中文需要后面加上fontproperties屬性

plt.xlabel('價格',fontproperties='SimHei')

設置對應坐標用漢字或英文表示,后面的屬性fontproperties表示中文可見,不亂碼,內部英文$$表示將英文括起來,r表示正則匹配,通過這個方式將其變?yōu)楹每吹淖煮w。如果要顯示特殊字符,比如阿爾法,則用轉意符\alpha,前面的\ 表示空格轉意.

?

new_ticks=np.linspace(-1,2,5) ??????????? # 設置x軸刻度

plt.xticks(new_ticks)

?

設置邊框/坐標軸

ax=plt.gca()??????????????? ??????????????????????????? #gca=get current axis/獲取當前軸線

ax.spines['right'].set_color('none')? ????? #spines就是脊梁,即四個邊框

ax.spines['top'].set_color('none')?????????? #取消右邊與上邊軸

?

matlibplot并沒有設置默認的x軸與y軸方向,下面就開始設置默認軸

ax.xaxis.set_ticks_position('bottom')

ax.yaxis.set_ticks_position('left')

?

實現(xiàn)將(0,-1)設為坐標原點

ax.spines['bottom'].set_position(('data',-1))

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

1.3圖例

l1,=plt.plot(x,y2)

plt.legend(handles=[l1,l2],prop={'family':'SimHei','size':15},loc='lower right',labels=['直線','曲線'])

prop={'family':'SimHei','size':15}:顯示中文

legend(hadles=[,,],labels=[,,],loc='best/upper right/upper left/.../lower right')

handles就是你給他添加legend的線,如果要用handles,則前面的plt.plot,必須用l1,形式(不要忘記逗號)

此處labels會覆蓋上述的plt.plot()label

loc默認是best,給你放在一個合適的位置上,如果你拉伸彈框,位置會跟著變,自動放置合適位置

?

1.4 Annotation標注

繪制特定散點

x0=1

y0=2*x0+1

?

# plot散點圖,上述plt.plot(x,y)變?yōu)?/span>plt.scatter(x,y)繪制出來就是散點圖

# s代表大小,b代表blue

plt.scatter(x0,y0,s=50,color='b')

?

# 繪制(x0,y0)垂直于x軸的線

# k--表示黑色虛線,k代表黑色,--表示虛線,lw表示線寬

plt.plot([x0,x0],[0,y0],'k--',lw=2.5)

?

#xy就是需要進行注釋的點的橫縱坐標;

#xycoords = 'data'說明的是要注釋點的xy的坐標是以橫縱坐標軸為基準的;

#xytext=(+30,-30)textcoords='data'說明了這里的文字是基于標注的點的x坐標的偏移+30以及標注點y坐標-30位置,就是我們要進行注釋文字的位置;

#fontsize = 16就說明字體的大??;

#arrowprops = dict()這個是對于這個箭頭的描述,arrowstyle='->'這個是箭頭的類型,connectionstyle="arc3,rad=.2"這兩個是描述我們的箭頭的弧度以及角度的。

plt.annotate(r'$2x+1=%s$'%y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),textcoords='offset points',fontsize=16,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))

?

# 其中-3.7, 3,是選取text的位置, 空格需要用到轉字符\ ,fontdict設置文本字體.

plt.text(-3.7,3,r'$T3his\ is\ the\ some\ text.\mu\ \sigma_i\ \alpha_t$',

???????? fontdict={'size':'16','color':'red'})

1.5tick能見度

對被遮擋的圖像調節(jié)相關透明度,本例中設置 x y 的刻度數(shù)字進行透明度設置

其中label.set_fontsize(12)重新調節(jié)字體大小

facecolor調節(jié) box 前景色,edgecolor 設置邊框, 本處設置邊框為無,alpha設置透明度.

for label in ax.get_xticklabels()+ax.get_yticklabels():

label.set_fontsize(12)

label.set_bbox(dict(facecolor='white',edgecolor='none',alpha=0.7))

1.6Figures and Subplots(圖和子圖)

fig = plt.figure()

我們不能在一個空白的figure上繪圖,必須要創(chuàng)建一個或更多的subplots(子圖

ax1 = fig.add_subplot(2, 2, 1)#figure是2x2(這樣一共有4幅圖),而且我們選中4個subplots(數(shù)字從1到4)中的第1個

#如果輸入plt.plot([1.5, 3.5, -2, 1.6])這樣的命令,matplotlib會把圖畫在最后一個figure的最后一個子圖上。

f, axes = plt.subplots(2, 3)????????????? #創(chuàng)建6個子圖

plt.subplots_adjust(wspace=0, hspace=0)# wspace和hspace控制figure寬度和長度的百分比,可以用來控制subplot之間的間隔

為了改變x-axis tickx軸標記),使用set_xticksset_xticklabels。前者告訴matplotlib沿著x軸的范圍,把標記放在哪里;默認會把所在位置作為標簽,但我們可以用set_xticklabels來設置任意值作為標簽:

ticks = ax.set_xticks([0, 250, 500, 750, 1000])

labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],rotation=30, fontsize='small')????????? ???????????????????? # rotation選項讓x軸上的標記標簽有一個30度的旋轉

ax.set_title('My first matplotlib plot') ? ??????? #set_title給subplot一個標題

1.7Saving Plots to File(把圖保存為文件)

保存一個SVG類型的圖片

dpi:控制每英寸長度上的分辨率

bbox_inches, 能刪除figure周圍的空白部分

plt.savefig('figpath.png', dpi=400, bbox_inches='tight')


?

2.Seaborn

有五種seaborn的風格,它們分別是:darkgrid, whitegrid, dark, white, ticks。它們各自適合不同的應用和個人喜好。默認的主題是darkgrid

import seaborn as sns

sns.set(style="ticks")

?

seaborn內置了不少樣例數(shù)據(jù),為dataframe類型, df = sns.load_dataset("anscombe")即讀取“anscombe”樣例數(shù)據(jù),如果要查看數(shù)據(jù),可以使用類似df.head()命令查看

df = sns.load_dataset("anscombe")

df.head()

?

relplot() 關系類圖表的接口,其實是下面兩種圖的集成,通過指定kind參數(shù)可以畫出下面的兩種圖

scatterplot() ???????????????????? 散點圖

lineplot() ???????????????????????? 折線圖

Categorical plots ???????????? 分類圖表

?

catplot() 分類圖表的接口,其實是下面八種圖表的集成,,通過指定kind參數(shù)可以畫出下面的八種圖

stripplot() ??????????????????????? 分類散點圖

swarmplot() ??????????????????? 能夠顯示分布密度的分類散點圖

boxplot() ???????????????????????? 箱圖

violinplot() ????????????????????? 小提琴圖

boxenplot() ???????????????????? 增強箱圖

pointplot() ?????????????????????? 點圖

barplot() ????????????????????????? 條形圖

countplot() ????????????????????? 計數(shù)圖

Distribution plot ???????????? 分布圖

?

jointplot() ??????????????????????? 雙變量關系圖

pairplot() ???????????????????????? 變量關系組圖

distplot() ???????????????????????? 直方圖,質量估計圖

kdeplot() ???????????????????????? 核函數(shù)密度估計圖

rugplot() ????????????????????????? 將數(shù)組中的數(shù)據(jù)點繪制為軸上的數(shù)據(jù)

Regression plots ???????????? 回歸圖

?

lmplot() ?????????????????????????? 回歸模型圖

regplot()?????? ?????????????????????????? 線性回歸圖

residplot() ?????????????????????? 線性回歸殘差圖

Matrix plots ??????????????????? 矩陣圖

?

heatmap() ??????????????????????? 熱力圖

clustermap() ??????????????????? 聚集圖


matplotlib學習筆記的評論 (共 條)

分享到微博請遵守國家法律
申扎县| 全南县| 山东省| 台中县| 张家川| 伊宁县| 绥德县| 南漳县| 利辛县| 科技| 贡山| 天等县| 盱眙县| 禹州市| 永济市| 昌宁县| 江源县| 兰州市| 嘉鱼县| 定兴县| 沙坪坝区| 龙江县| 会理县| 平度市| 佛坪县| 温州市| 长宁县| 虎林市| 双牌县| 凉山| 鄱阳县| 平凉市| 徐汇区| 浠水县| 鹰潭市| 青神县| 温泉县| 凌海市| 蓬莱市| 德州市| 北海市|