Python 數據分析—畫圖

1、matplotlib的用法

 折線圖+一些經常使用的設置

#顯示中文
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = [u'SimHei'] mpl.rcParams['axes.unicode_minus'] = False fig,ax = plt.subplots() fig.set_size_inches(12,6) #設置圖像大小 ax.plot(data.iloc[:,1:3]) #畫圖 ax.set_xlabel('X軸',fontsize=15) #x軸的名稱 ax.set_ylabel('Y軸',fontsize=15) ax.legend(['A','B']) #標籤 ax.set_xticks(np.arange(-10,120,10)) #設置x軸的座標 plt.yticks(fontsize=15) #設置座標的字體大小 plt.title('折線圖標題',fontsize=20)
data = pd.DataFrame({'A':np.random.rand(100)*20,'B':np.random.rand(100)*12,'C':np.random.rand(100)*17,'D':np.random.rand(100)*10})

直方圖

 這裏簡直要吐血,要先設置set_xticks   在設置set_xticklabelshtml

fig,ax = plt.subplots()
ax.bar(range(4),data.sum()) ax.set_xticks(range(4)) ax.set_xticklabels(data.columns)

 

 

多個對比dom

fig,ax = plt.subplots()
ax.bar(np.arange(4),data.sum(),width=0.2,label='不變') ax.bar(np.arange(4)+0.2,data.sum()*1.5,width=0.2,label='1.5倍') ax.set_xticks(np.arange(4)+0.1) ax.set_xticklabels(data.columns) plt.legend() #這裏能夠加入loc

 

散點圖,若是要加趨勢線就用sns吧

fig,ax = plt.subplots()
ax.scatter(data.iloc[:,0],data.iloc[:,0]*2 + np.random.randn(100)*6) #sns.regplot(x = data.iloc[:,0],y = data.iloc[:,0]*2 + np.random.randn(100)*6)

 

 多個圖的製做

fig,ax = plt.subplots(2,3)
fig.set_size_inches(20,10) ax[0,0].plot(data.iloc[:,1]) ax[0,1].hist(data.iloc[:,2]) ax[1,0].bar(np.arange(4),data.sum()) ax[1,2].scatter(data.iloc[:,0],data.iloc[:,0]*2 + np.random.randn(100)*6)

 

 

 

2、seaborn用法

http://www.cnblogs.com/douzujun/p/8366283.htmlpost

一、seaborn總體的風格設置

這部分主要了解sns的全局設置,包括set_style幾種風格,set_content()有好幾個默認的模式,paper,talk,poster,notebook顏色逐步加深,在此基礎上能夠對字體等進行修改字體

import pandas as pd
import numpy as np import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns def cosplot(): x = np.linspace(1,10,100) for i in range(7): plt.plot(x, np.cos(x + i * .5) * (7 - i)) #使用sns設置以後的圖形 cosplot()

sns.set_style('whitegrid')  #sns可選擇的類型有,darkgrid,dark,whitegrid,white,ticks
cosplot()

 

#箱型圖,對於pandas數據類型,直接調用boxplot就可生成,每一列是一個箱子
sns.set_style('darkgrid')
data = pd.DataFrame({'A':np.random.rand(100)*20,'B':np.random.rand(100)*12,'C':np.random.rand(100)*17,'D':np.random.rand(100)*10}) sns.set_context('paper',font_scale=2,rc = {'lines.linewidth':4}) #分別設置座標軸的字體大小和線的粗細 plt.figure(figsize=(10,6)) #設置圖像大小 sns.boxplot(data,palette="deep") #sns.violinplot(data,palette="deep") #這個是小提琴圖

 

 

二、顏色設置

#對於箱型圖
plt.figure(figsize=(10,6))
sns.set_context('notebook',font_scale=1.5,rc = {'lines.linewidth':2}) sns.boxplot(data,palette=sns.color_palette('hls',4)) #這裏能夠設置顏色

 

三、畫圖實踐(主要是一些特殊的圖形,通常圖形直接使用matplotlib)

#單變量——直方圖
x = np.random.normal(size=2000)
sns.distplot(x,kde = True,bins=20)  #kde是否顯示曲線,bins設置格子大小

# 兩個變量求相關
sns.jointplot(x = 'D',y='B',data=data)

 

#數據量很大時候使用hex圖
mean, cov = [0, 1], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, 1000).T # hex圖, with sns.axes_style("white"): sns.jointplot(x=x, y=y, kind="hex", color="k")

 

#多變量時候使用兩兩比較
sns.pairplot(data)

 

相關文章
相關標籤/搜索