欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python可視化分析的實現(matplotlib、seaborn、ggplot2)

 更新時間:2021年02月03日 09:42:03   作者:feifei2233  
這篇文章主要介紹了python可視化分析的實現(matplotlib、seaborn、ggplot2),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、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 string loc code 位置
"best" 0 右上角(默認)
“upper right” 1 右上角
“upper left” 2 左上角
“l(fā)ower left” 3 左下角
“l(fā)ower right” 4 右下角
"right" 5 中右側
“center left” 6 中左側
“center right” 7 中右側
“l(fā)ow 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的格式,可以直接在圖中添加公式

在這里插入圖片描述

4.2 氣泡圖

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

在這里插入圖片描述

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

在這里插入圖片描述

二、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) #將身高按性別分組后繪制

1.2 小提琴圖

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

在這里插入圖片描述

1.3 點圖

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

在這里插入圖片描述

1.4 條圖與計數圖

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

在這里插入圖片描述

1.5 分組圖

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

在這里插入圖片描述

1.6 概率分布圖

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

#自定義漸進正態(tài)函數圖像
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) 

在這里插入圖片描述

2、聯合圖

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

在這里插入圖片描述

3、配對圖

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

在這里插入圖片描述

三、ggplot庫

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

1、圖層畫法+常用圖形

繪制直角坐標系和字體

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

在這里插入圖片描述

在此基礎上增加線圖

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

在這里插入圖片描述

此外,+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數據分析基礎教程 王斌會》整理的學習筆記,還有許多參數設置沒有寫明,以及pyecharts 動態(tài)圖神器,日后學習了再一點點補充吧~

到此這篇關于python可視化分析的實現(matplotlib、seaborn、ggplot2)的文章就介紹到這了,更多相關python 可視化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python使用beautifulsoup從愛奇藝網抓取視頻播放

    python使用beautifulsoup從愛奇藝網抓取視頻播放

    這篇文章主要介紹了python使用beautifulsoup從愛奇藝網抓取視頻并播放示例,大家參考使用吧
    2014-01-01
  • PyTorch學習筆記之回歸實戰(zhàn)

    PyTorch學習筆記之回歸實戰(zhàn)

    這篇文章主要介紹了PyTorch學習筆記之回歸實戰(zhàn),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 詳解OpenCV中直方圖,掩膜和直方圖均衡化的實現

    詳解OpenCV中直方圖,掩膜和直方圖均衡化的實現

    這篇文章主要為大家詳細介紹了OpenCV中直方圖、掩膜、直方圖均衡化詳細介紹及代碼的實現,文中的示例代碼講解詳細,需要的可以參考一下
    2022-11-11
  • python中ASCII碼字符與int之間的轉換方法

    python中ASCII碼字符與int之間的轉換方法

    今天小編就為大家分享一篇python中ASCII碼字符與int之間的轉換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python 獲取windows桌面路徑的5種方法小結

    Python 獲取windows桌面路徑的5種方法小結

    今天小編就為大家分享一篇Python 獲取windows桌面路徑的5種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python groupby 函數 as_index詳解

    python groupby 函數 as_index詳解

    今天小編就為大家分享一篇python groupby 函數 as_index詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python入門教程(三十)Python的PIP

    Python入門教程(三十)Python的PIP

    這篇文章主要介紹了Python入門教程(三十)Python的PIP,PIP是Python 包或模塊的包管理器,本章帶你們看一下如何使用PIP命令,需要的朋友可以參考下
    2023-04-04
  • python學習筆記之調用eval函數出現invalid syntax錯誤問題

    python學習筆記之調用eval函數出現invalid syntax錯誤問題

    python是一門多種用途的編程語言,時常扮演腳本語言的角色。一般來說,python可以定義為面向對象的腳本語言,這個定義把面向對象的支持和面向腳本語言的角色融合在一起。很多時候,人們常常喜歡用“腳本”和不是語言來描述python的代碼文件。
    2015-10-10
  • python實習總結(yeild,async,azwait和協程)

    python實習總結(yeild,async,azwait和協程)

    今天是Python實習的第一天,熟悉了環(huán)境,第一次使用macbook,氛圍還不錯,努力學習新知識,希望本片文章能給你帶來幫助
    2021-10-10
  • python的random和time模塊詳解

    python的random和time模塊詳解

    這篇文章主要介紹了python的random和time模塊,具有一定借鑒價值,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10

最新評論