怎麼用matplotlib畫出漂亮的分析圖表

qwer1030274531發表於2020-12-17

今日錦囊

特徵錦囊:怎麼用matplotlib畫出漂亮的分析圖表

???? Index

  • 資料集引入

  • 折線圖

  • 餅圖

  • 散點圖

  • 面積圖

  • 直方圖

  • 條形圖

關於用matplotlib畫圖,先前的錦囊裡有提及到,不過那些圖都是比較簡陋的( 《特徵錦囊:常用的統計圖在Python裡怎麼畫?》),難登大雅之堂,作為一名優秀的分析師,還是得學會一些讓圖表漂亮的技巧,這樣子拿出去才更加有面子哈哈。好了,今天的錦囊就是介紹一下各種常見的圖表,可以怎麼來畫吧。

???? 資料集引入

首先引入資料集,我們還用一樣的資料集吧,分別是  Salary_Ranges_by_Job_Classification以及  GlobalLandTemperaturesByCity。(具體資料集可以後臺回覆  plot獲取)

# 匯入一些常用包import pandas as pdimport numpy as npimport seaborn as sns%matplotlib inlineimport matplotlib.pyplot as pltimport matplotlib as mplplt.style.use('fivethirtyeight')#解決中文顯示問題,Macfrom matplotlib.font_manager import FontProperties# 檢視本機plt的有效styleprint(plt.style.available)# 根據本機available的style,選擇其中一個,因為之前知道ggplot很好看,所以我選擇了它mpl.style.use(['ggplot'])# ['_classic_test', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark-palette', 'seaborn-dark', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'seaborn', 'Solarize_Light2']# 資料集匯入# 引入第 1 個資料集 Salary_Ranges_by_Job_Classificationsalary_ranges = pd.read_csv('./data/Salary_Ranges_by_Job_Classification.csv')# 引入第 2 個資料集 GlobalLandTemperaturesByCityclimate = pd.read_csv('./data/GlobalLandTemperaturesByCity.csv')# 移除缺失值climate.dropna(axis=0, inplace=True)# 只看中國# 日期轉換, 將dt 轉換為日期,取年份, 注意map的用法climate['dt'] = pd.to_datetime(climate['dt'])climate['year'] = climate['dt'].map(lambda value: value.year)climate_sub_china = climate.loc[climate['Country'] == 'China']climate_sub_china['Century'] = climate_sub_china['year'].map(lambda x:int(x/100 +1))climate.head()

怎麼用matplotlib畫出漂亮的分析圖表

怎麼用matplotlib畫出漂亮的分析圖表

???? 折線圖

折線圖是比較簡單的圖表了,也沒有什麼好最佳化的,顏色看起來順眼就好了。下面是從網上找到了顏色表,可以從中挑選~ 怎麼用matplotlib畫出漂亮的分析圖表

# 選擇上海部分天氣資料df1 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .set_index('dt')df1.head()

怎麼用matplotlib畫出漂亮的分析圖表

# 折線圖df1.plot(colors=['lime'])plt.title('AverageTemperature Of ShangHai')plt.ylabel('Number of immigrants')plt.xlabel('Years')plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

上面這是單條折線圖,多條折線圖也是可以畫的,只需要多增加幾列。

# 多條折線圖df1 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'SH'})df2 = climate.loc[(climate['Country']=='China')&(climate['City']=='Tianjin')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'TJ'})df3 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shenyang')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'SY'})# 合併df123 = df1.merge(df2, how='inner', >

怎麼用matplotlib畫出漂亮的分析圖表

# 多條折線圖df123.plot()plt.title('AverageTemperature Of 3 City')plt.ylabel('Number of immigrants')plt.xlabel('Years')plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

???? 餅圖

接下來是畫餅圖,我們可以最佳化的點多了一些,比如說從餅塊的分離程度,我們先畫一個“低配版”的餅圖。

df1 = salary_ranges.groupby('SetID', axis=0).sum()

怎麼用matplotlib畫出漂亮的分析圖表

# “低配版”餅圖df1['Step'].plot(kind='pie', figsize=(7,7),                  autopct='%1.1f%%',                  shadow=True)plt.axis('equal')plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

# “高配版”餅圖colors = ['lightgreen', 'lightblue'] #控制餅圖顏色 ['lightgreen', 'lightblue', 'pink', 'purple', 'grey', 'gold']explode=[0, 0.2] #控制餅圖分離狀態,越大越分離df1['Step'].plot(kind='pie', figsize=(7, 7),                  autopct = '%1.1f%%', startangle=90,                  shadow=True, labels=None, pctdistance=1.12, colors=colors, explode = explode)plt.axis('equal')plt.legend(labels=df1.index, loc='upper right', fontsize=14)plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

???? 散點圖 anhui/

散點圖可以最佳化的地方比較少了,ggplot2的配色都蠻好看的,正所謂style選的好,省很多功夫!

# 選擇上海部分天氣資料df1 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'SH'})df2 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shenyang')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'SY'})# 合併df12 = df1.merge(df2, how='inner', >

怎麼用matplotlib畫出漂亮的分析圖表

# 散點圖df12.plot(kind='scatter',  x='SH', y='SY', figsize=(10, 6), color='darkred')plt.title('Average Temperature Between ShangHai - ShenYang')plt.xlabel('ShangHai')plt.ylabel('ShenYang')plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

???? 面積圖

# 多條折線圖df1 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'SH'})df2 = climate.loc[(climate['Country']=='China')&(climate['City']=='Tianjin')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'TJ'})df3 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shenyang')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .rename(columns={'AverageTemperature':'SY'})# 合併df123 = df1.merge(df2, how='inner', >

怎麼用matplotlib畫出漂亮的分析圖表

colors = ['red', 'pink', 'blue'] #控制餅圖顏色 ['lightgreen', 'lightblue', 'pink', 'purple', 'grey', 'gold']df123.plot(kind='area', stacked=False,        figsize=(20, 10), colors=colors)plt.title('AverageTemperature Of 3 City')plt.ylabel('AverageTemperature')plt.xlabel('Years')plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

???? 直方圖

# 選擇上海部分天氣資料df = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .set_index('dt')df.head()

怎麼用matplotlib畫出漂亮的分析圖表

# 最簡單的直方圖df['AverageTemperature'].plot(kind='hist', figsize=(8,5), colors=['grey'])plt.title('ShangHai AverageTemperature Of 2010-2013') # add a title to the histogramplt.ylabel('Number of month') # add y-labelplt.xlabel('AverageTemperature') # add x-labelplt.show()

怎麼用matplotlib畫出漂亮的分析圖表

???? 條形圖

# 選擇上海部分天氣資料df = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')]\                  .loc[:,['dt','AverageTemperature']]\                  .set_index('dt')df.head()

怎麼用matplotlib畫出漂亮的分析圖表

df.plot(kind='bar', figsize = (10, 6))plt.xlabel('Month') plt.ylabel('AverageTemperature') plt.title('AverageTemperature of shanghai')plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

df.plot(kind='barh', figsize=(12, 16), color='steelblue')plt.xlabel('AverageTemperature') plt.ylabel('Month') plt.title('AverageTemperature of shanghai') plt.show()

怎麼用matplotlib畫出漂亮的分析圖表

今天的內容比較長了,建議收藏起來哦,下次有空的時候可以把它弄進自己的程式碼庫,使用起來更加方便哦~


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2742977/,如需轉載,請註明出處,否則將追究法律責任。

相關文章