溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python怎么實現一個可視化分析功能

發布時間:2021-02-04 16:10:07 來源:億速云 閱讀:293 作者:Leah 欄目:開發技術

這篇文章給大家介紹使用python怎么實現一個可視化分析功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、matplotlib庫

1、基本繪圖命令

import matplotlib.pyplot as plt
plt.figure(figsize=(5,4)) #設置圖形大小
plt.rcParams['axes.unicode_minus']=False #正常顯示負號
plt.rcParams['font.sans-self']=['Kai Ti'] #設置字體,這里是楷體,SimHei表示黑體

#基本統計圖
plt.bar(x,y);plt.pie(y,labels=x);plt.plot(x,y);
plt.hist(df.身高) #若參數density=True則是頻率直方圖

3、圖形參數設置

顏色: plt.plot(x,y,c=‘red') #參數c控制顏色
橫縱坐標軸范圍: plt.xlim(0,100),plt.ylim(0,8)
橫縱坐標軸名稱: plt.xlabel(),plt.ylabel()
橫縱坐標軸刻度: plt.xticks(range(len(x)),x)
線形和符號: plt.plot(x,y,linestyle='–',marker=‘o') #實線:'-' ;虛線:'–'; '.'指點線
附加參考線: plt.axvline(x=1);plt.axhline(y=4)
文字標注: plt.text(3,5,‘peak point') #參數表示:坐標+文字
圖例: plt.plot(x,y,label=‘折線');plt.legend()
分面繪圖:

#一行兩圖
plt.subplot(121)
plt.bar(x,y)
plt.subplot(122)
plt.plot(x,y)
#一頁多圖
fig,ax=plt.subplots(2,2,figsize=(15,12)) # 2行2列放4個圖,figsize控制大小
ax[0,0].bar(x,y);ax[0,1].plot(x,y);
ax[1,0].pie(x,y);ax[1,1].plot(y,'.',linewidth=3)

具體的參數color、linestyle、圖例位置設置

顏色字符(color)

字符代表顏色
r紅色
b藍色
g綠色
w白色
c青色
m洋紅
y黃色
k黑色

風格字符(linestyle)

字符代表風格
- (一個連字符)實線
– (兩個連字符)虛線
-.點劃線
點虛線
' '留空,空格

loc 參數(以matplotlib添加圖例為例說明位置)

loc stringloc code位置
"best"0右上角(默認)
“upper right”1右上角
“upper left”2左上角
“lower left”3左下角
“lower right”4右下角
"right"5中右側
“center left”6中左側
“center right”7中右側
“low center”8中下方
“upper center”9中上方
“center”10中間

4、特殊統計圖的繪制

4.1 數學函數圖

import matplotlib.pyplot as plt   #加載基本繪圖包
plt.rcParams['font.sans-serif']=['SimHei']; #SimHei黑體
plt.rcParams['axes.unicode_minus']=False; #正常顯示圖中負號
import numpy as np #加載軟件包numpy
import math  #加載軟件包math
x=np.linspace(0,2*math.pi);x #生成[0,2*pi]序列 ,作為橫坐標取值
plt.plot(x,np.sin(x)) #y=sinx 正弦函數
plt.plot(x,np.cos(x)) #y=cosx 余弦函數
plt.plot(x,np.log(x)) #y=lnx #對數函數
plt.plot(x,np.exp(x)) #y=e^x 指數函數

數學函數也可以用pandas庫繪制,可詳見我的另一篇博客:文章鏈接

#極坐標圖
t=np.linspace(0,2*math.pi) 
x=3*np.sin(t); 
y=5*np.cos(t) 
plt.plot(x,y); 
plt.text(0,0,r'$\frac{x^2}{3^2}+\frac{y^2}{5^2}=1$',fontsize=20) #python借鑒的LATEX的格式,可以直接在圖中添加公式

使用python怎么實現一個可視化分析功能

4.2 氣泡圖

import pandas as pd
df=pd.read_excel('data.xlsx')
plt.scatter(df['身高'], df['體重'], s=df['支出']) #在散點圖的基礎上加上點的大小,例子中s=df['支出']就是將指各樣本點支出越多,點面積就越大

使用python怎么實現一個可視化分析功能

4.3 三維曲面圖

from mpl_toolkits.mplot3d import Axes3D 
fig = plt.figure() 
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.5) 
Y = np.arange(-4, 4, 0.5) 
X, Y = np.meshgrid(X, Y)
Z = (X**2+ Y**2)
ax.plot_surface(X, Y, Z) #該圖像就是表示函數z=x^2+y^2

使用python怎么實現一個可視化分析功能

二、seaborn庫

1、常用統計圖

1.1 箱線圖

import seaborn as sns #加載軟件包seaborn
#箱線圖
sns.boxplot(x=df['身高'])
#豎著放的箱線圖,也就是將 x 換成 y
sns.boxplot(y=df['身高']) 
#分組繪制箱線圖
sns.boxplot(x='性別', y='身高',data=df) #將身高按性別分組后繪制

使用python怎么實現一個可視化分析功能

1.2 小提琴圖

sns.violinplot(x='性別', y='支出', data=df) #箱線圖的變種,可以加第三個類別參數hue

使用python怎么實現一個可視化分析功能

1.3 點圖

sns.stripplot(x='性別', y='身高', data=df, jitter=True) #分組的數據(定性+定量)畫的點圖,jitter參數為True表示將點分散開來,默認為false

使用python怎么實現一個可視化分析功能

1.4 條圖與計數圖

#條圖,即柱形圖
sns.barplot(x='性別', y='身高', data=df, ci=0, palette="Blues_d") #palette用于設置顏色
#計數圖
sns.countplot(x='性別', hue="開設", data=df) #都是分類變量

使用python怎么實現一個可視化分析功能

1.5 分組圖

#按性別、開設依次分組后計數,aspect指比例大小
sns.factorplot(x='性別', col="開設", col_wrap=3, data=df, kind="count", size=2.5, aspect=.8)

使用python怎么實現一個可視化分析功能

1.6 概率分布圖

#displot:直方圖+密度函數,bins表示分的組數,kde=False表示不畫出密度曲線,rug表示有數據的地方就標注出來
sns.distplot(df['身高'], kde=True, bins=20, rug=True)

#自定義漸進正態函數圖像
def norm_sim2(N=1000,n=10):
 xbar=np.zeros(N)
 for i in range(N):
  xbar[i]=np.random.uniform(0,1,n).mean()#[0,1]上均勻隨機數均值
 sns.distplot(xbar,bins=50)
 print(pd.DataFrame(xbar).describe().T)
norm_sim2(N=100000,n=50)

使用python怎么實現一個可視化分析功能

2、聯合圖

sns.jointplot(x='身高', y='體重', data=df)#畫的散點圖+單個變量的直方圖

使用python怎么實現一個可視化分析功能

3、配對圖

#針對多個變量,兩兩配對,畫在一起
sns.pairplot(df[['身高','體重','支出']]) #將各變量間關系共放一張圖上,在多元統計分析中很有用

使用python怎么實現一個可視化分析功能

三、ggplot庫

ggplot庫是采用的繪畫中圖層的思想,即一層一層往上疊加,先畫好坐標,再添線,再增加其他操作,最后用 + 號連接起來,操作起來更有邏輯章法,語句簡潔。ggplot新包是plotnine,與R語言的ggplot2對應,使用起來更方便,故直接import plotnine即可,里面的函數使用與ggplot是基本一樣的

1、圖層畫法+常用圖形

繪制直角坐標系和字體

GP=ggplot(aes(x='身高',y='體重'),data=df)

使用python怎么實現一個可視化分析功能

在此基礎上增加線圖

GP + geom_line()+ theme_grey(base_family = 'SimHei')#還可以再往上疊加,+geom_point()就是在折線圖基礎上加上散點圖

使用python怎么實現一個可視化分析功能

改為有三個變量的點圖,不同類型畫不同記號(shape)/顏色(color)

ggplot(df,aes(x='身高',y='體重',color='性別'))+geom_point()+ theme_grey(base_family = 'SimHei')

使用python怎么實現一個可視化分析功能

改為分面圖:
用pandas繪制分組統計圖還需要先groupby,ggplot一步到位更加簡便

ggplot(df,aes(x='身高',y='體重'))+geom_point()+facet_wrap('性別') + 
theme_grey(base_family = 'SimHei') #facet_wrap('性別')表示按性別分成兩組畫分面圖

使用python怎么實現一個可視化分析功能

此外,+theme_bw()等可以設置圖片背景、主題

2、快速繪圖

ggplot也可以像pandas一樣,在qplot函數中設置參數geom的取值而直接改變圖像類型

#快速繪制直方圖
qplot(x='身高',data=df, geom='histogram')+ theme_grey(base_family = 'SimHei')
#快速繪制柱形圖
qplot('開設',data=df, geom='bar')+ theme_grey(base_family = 'SimHei')
#默認散點圖
qplot('身高', '體重', data=df, color='性別') + theme_grey(base_family = 'SimHei')

關于使用python怎么實現一個可視化分析功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女