python 可视化_python可视化基础
常用的python可視化工具包是matplotlib,seaborn是在matplotlib基礎(chǔ)上做的進(jìn)一步封裝。入坑python可視化,對(duì)有些人來(lái)說(shuō)如同望山跑死馬,心氣上早輸了一節(jié)。其實(shí)學(xué)習(xí)一門(mén)新知識(shí),首先要掌握的是這門(mén)知識(shí)的最少最核心知識(shí),剩下的就讓它在實(shí)踐中拓展吧。
視圖分類(lèi)
可視化視圖的分類(lèi)常常從兩個(gè)維度:變量個(gè)數(shù)和變量之間的關(guān)系。按變量個(gè)數(shù)分可分為單變量分析和多變量分析。變量之間的關(guān)系常有下面四種:
比較關(guān)系,如:折線(xiàn)圖。
聯(lián)系,如:散點(diǎn)圖。
構(gòu)圖,如:餅圖。
分布,如:直方圖。
知道了這些,還不夠!你好要掌握如下幾種常見(jiàn)的視圖畫(huà)法。
工欲善其事,必先利其器!開(kāi)始畫(huà)圖之前你需要注意這幾個(gè)問(wèn)題:
引入合適的包
import matplotlib.pyplot as plt
import seaborn as sns
處理中文亂碼和負(fù)號(hào)問(wèn)題
plt.rcParams['font.sans-serif']=['SimHei'] # 用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False #用來(lái)正常顯示負(fù)號(hào)
Plus1:上面的中文設(shè)置在MAC平臺(tái)的Spyder上無(wú)效,需要替換成如下的設(shè)置:
plt.rcParams['font.family'] = ['Arial Unicode MS'] #用來(lái)正常顯示中文標(biāo)簽
Plus2:你可以把下面的這幾條語(yǔ)句當(dāng)成作圖過(guò)程中的固定代碼塊:
import matplotlib.pyplot as plt # 導(dǎo)入作圖庫(kù)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False # 用來(lái)正常顯示負(fù)號(hào)
plt.figure(figsize = (7, 5)) # 創(chuàng)建圖像區(qū)域,指定比例
好了現(xiàn)在開(kāi)始我們的繪圖之旅吧!
散點(diǎn)圖(scatter plot)
散點(diǎn)圖可以用來(lái)顯示兩個(gè)變量的關(guān)系,其核心示例代碼如下:
plt.scatter(x,y,marker='X')
plt.show()
對(duì)應(yīng)的生成圖如下:
折線(xiàn)圖
折線(xiàn)圖一般用來(lái)描述數(shù)據(jù)隨時(shí)間變化的趨勢(shì),其核心代碼示例如下:
x =[i+1 for i in range(2009,2019)]
y =[5,3,6,20,17,16,19,30,32,35]
plt.plot(x,y)
plt.show()
其生成圖如下所示:
折線(xiàn)圖豪華升級(jí)版本代碼如下:
import numpy as np
import matplotlib.pyplot as plt
x =np.linspace(0,10,1000)
y=np.sin(x)+1
z=np.cos(x**2)+1
plt.figure(figsize=(8,4))
plt.plot(x,y,label='$\sin x+1$',color='red',linewidth=2)
plt.plot(x,z,'b--',label='$\cos x^2+1$')
plt.xlabel('Time(s) ')
plt.ylabel('Volt')
plt.title('A Simple Example')
plt.ylim(0,2.2)
plt.legend()
plt.show()
直方圖
直方圖又稱(chēng)質(zhì)量分布圖,能比較直觀的體現(xiàn)出不同階段,數(shù)量(質(zhì)量)的分布狀態(tài),其核心示例代碼如下:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
a =np.random.randn(100)
b = pd.Series(a)
plt.hist(b)
plt.show()
其生成圖如下所示:
條形圖
條形圖和直方圖很像,如果說(shuō)通過(guò)直方圖可以了解到變量的數(shù)值分布,那么條形圖可以幫我們查看變量的類(lèi)別特征。其核心示例代碼如下:
x =['cat1','cat2','cat3','cat4','cat5']
y =[5,4,8,12,7]
plt.bar(x,y)
plt.show()
其生成圖如下:
箱線(xiàn)圖
箱線(xiàn)圖又稱(chēng)盒式圖,由五個(gè)數(shù)值點(diǎn)構(gòu)成:max(最大值)、min(最小值)、median(中位數(shù))、Q3(上四分位數(shù))和Q1(下四分位數(shù))組成,比較直觀的圖示如下:
下面我們來(lái)模擬箱線(xiàn)圖的生成,其核心示例代碼如下:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
data = np.random.normal(size=(10,4))
lables =["A","B","C","D"]
plt.boxplot(data,labels=lables)
plt.show()
生成圖如下所示:
餅圖
餅圖常用來(lái)描述部分和整體之間的比例,其核心示例代碼如下
nums =[24,37,19,9]
lables =["A","B","C","D"]
plt.pie(x=nums,labels=lables)
plt.show()
其生成圖示例如下:
其豪華升級(jí)版本如下:
import matplotlib.pyplot as plt
labels = 'Frogs','Hogs','Dogs','Logs'
sizes =[15,30,45,10]
colors=['yellowgreen','gold','lightskyblue','lightcoral']
explode=(0,0.1,0,0)
plt.pie(sizes,explode =explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=90)
plt.axis('equal')
plt.show()
其示例圖如下所示:
熱力圖
熱力圖是一種直觀的多遠(yuǎn)變量分析方法,是一種矩陣表示方法,其中矩陣的不同元素值用不同的顏色來(lái)表示。在模擬時(shí),我們需要導(dǎo)入seaborn中自帶的數(shù)據(jù)集fights。其核心示例代碼如下:
import matplotlib.pyplot as plt
import seaborn as sns
# data prepare
flights = sns.load_dataset("flights")
data=flights.pivot('year','month','passengers')
sns.heatmap(data)
plt.show()
其圖像示例如下:
未完待續(xù)…
總結(jié)
以上是生活随笔為你收集整理的python 可视化_python可视化基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ThinkPad X260 UEFI
- 下一篇: python商品评论分析_NLP实战:用