1、基礎設置python
導入相關的庫字體
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline #在ipython總顯示圖表
默認不顯示中文,所以須要更改設置,顯示中文 spa
#顯示中文 import matplotlib as mpl mpl.rcParams['font.sans-serif'] = [u'SimHei'] mpl.rcParams['axes.unicode_minus'] = False
設置全局變量3d
mpl.rc('font',size=12) #字體 mpl.rc('figure',figsize=(8,6)) #圖像大小 mpl.rc('axes.spines',right=False,top=False) #設置右邊上邊的橫線是否顯示
2、導入數據,並查看code
data = sns.load_dataset('tips') data.head()
#字段含義分別是:總消費,小費,性別,是否吸菸,週末,時間,幾我的
3、做圖(matplotlib)blog
一、折線圖圖片
fig,ax = plt.subplots() #fig主要設置一些全局的變量,而ax主要負責畫圖 ax.plot(data.index,data['total_bill']) fig.set_size_inches(12,6) #從新設置大小 plt.title('折線圖標題',fontsize=22) #標題,更改字體大小 ax.set_xlabel('X軸',fontsize=18) #設置x軸,y軸的標題 ax.set_ylabel('Y軸',fontsize=18) plt.yticks(fontsize=14) #刻度字體大小 plt.xticks(fontsize=14) plt.legend(['標籤'],fontsize=15) #標籤內容字體大小 plt.savefig('折線圖',dpi=100) #保存圖片,能夠設置dpi
二、柱形圖ip
data_bar1 = data['tip'].groupby(data['day']).mean() #統計數據,按照星期來分組 data_bar2 = data['tip'].groupby(data['time']).mean() #統計數據,按照星期來分組 error = data['tip'].groupby(data['time']).std() fig,ax = plt.subplots(1,2) #畫出兩個區域 ax[0].bar(data_bar1.index,data_bar1.values) #第一個區域怎麼畫 ax[0].set_xlabel('小費星期關係圖',fontsize=16) ax[0].set_ylabel('小費',fontsize=16) ax[0].legend(['星期']) ax[0].set_ylim(0,4) #設置Y軸最大最小值 ax[1].bar(data_bar2.index,data_bar2.values) #第二個區域怎麼畫 ax[1].errorbar(data_bar2.index,data_bar2.values,yerr = error,ls = 'none',color='#96CDCD',lw=6) #加入方差圖 ax[1].legend(['午晚餐']) ax[1].set_xlabel('小費午晚餐關係圖',fontsize=16) ax[1].set_xticklabels(['晚餐','午飯']) #更改座標軸的名稱 ax[1].set_ylim(0,4) #設置Y軸最大最小值 fig.set_size_inches(12,6) #設置整個圖的大小 plt.savefig('柱形圖',dpi=100) #保存圖片,能夠設置dpi
三、橫軸的柱形圖unicode
data_barh = data['tip'].groupby(data['sex']).mean() #統計數據,男女小費 fig,ax = plt.subplots() ax.barh(data_barh.index,data_barh.values,0.4) #0.4是寬度 fig.set_size_inches(6,2) plt.title('橫着的') ax.set_ylabel('性別',fontsize=20) ax.set_xlabel('小費',fontsize = 20) plt.xticks(fontsize=14) ax.set_yticklabels(['男性','女性'])
四、餅圖pandas
data_pie = data['size'].groupby(data['size']).size() fig,ax = plt.subplots() ax.pie(data_pir,autopct='%1.1f%%',labels=data_pie.index,colors = ['#B0E0E6','#B0C4DE','#A6A6A6','#FF3E96','#FFB5C5','#FFEBCD']) #數據源,顯示的數值,顯示標籤,顏色 fig.set_size_inches(8,8) #若是兩個數字不相等會變成橢圓
五、散點圖
fig,ax = plt.subplots() ax.scatter(data['tip'],data['total_bill']) fig.set_size_inches(8,6) ax.set_xlabel('小費',fontsize=18) ax.set_ylabel('總消費',fontsize=18) plt.xticks(fontsize=12) plt.yticks(fontsize=12)
六、幾個區域的畫圖方法(一種是用上面的柱形圖那種方法 fig,ax = plt.subplots(1,2),另外一種是下面的這種,這種能夠自定義佔據的空格數)
fig = plt.figure() ax1 = plt.subplot2grid((2,3),(0,0)) ax1.bar(data_bar.index,data_bar.values) fig.set_size_inches(12,6) ax2 = plt.subplot2grid((2,3),(0,1),colspan=2)#佔據幾個空額,也能夠是rowspan,一個是橫的,一個是豎的 ax2.scatter(data['tip'],data['total_bill']) ax3 = plt.subplot2grid((2,3),(1,0)) ax3.barh(data_barh.index,data_barh.values)
七、兩根柱形圖對比
fig,ax = plt.subplots() ax.bar(np.arange(4),data_bar.values,0.3) #橫座標先用數字代替 ax.bar(np.arange(4)+0.3,data_bar.values*2,0.3) #偏移必定量 ax.set_xticks(np.arange(4)+0.15) #從新設置x軸的位置 ax.set_xticklabels(data_bar.index) #從新設置名稱
4、做圖(seaborn)