<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
作為一名優秀的分析師,還是得學會一些讓圖表漂亮的技巧,這樣子拿出去才更加有面子哈哈。好了,今天的錦囊就是介紹一下各種常見的圖表,可以怎麼來畫吧。
首先引入資料集,我們還用一樣的資料集吧,分別是 Salary_Ranges_by_Job_Classification
以及 GlobalLandTemperaturesByCity
。(具體資料集可以後臺回覆 plot
獲取)
# 匯入一些常用包 import pandas as pd import numpy as np import seaborn as sns %matplotlib inline import matplotlib.pyplot as plt import matplotlib as mpl plt.style.use('fivethirtyeight') #解決中文顯示問題,Mac from matplotlib.font_manager import FontProperties # 檢視本機plt的有效style print(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_Classification salary_ranges = pd.read_csv('./data/Salary_Ranges_by_Job_Classification.csv') # 引入第 2 個資料集 GlobalLandTemperaturesByCity climate = 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()
折線圖是比較簡單的圖表了,也沒有什麼好優化的,顏色看起來順眼就好了。下面是從網上找到了顏色表,可以從中挑選~
# 選擇上海部分天氣資料 df1 = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')] .loc[:,['dt','AverageTemperature']] .set_index('dt') df1.head()
# 折線圖 df1.plot(colors=['lime']) plt.title('AverageTemperature Of ShangHai') plt.ylabel('Number of immigrants') plt.xlabel('Years') plt.show()
上面這是單條折線圖,多條折線圖也是可以畫的,只需要多增加幾列。
# 多條折線圖 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', on=['dt']) .merge(df3, how='inner', on=['dt']) .set_index(['dt']) df123.head()
# 多條折線圖 df123.plot() plt.title('AverageTemperature Of 3 City') plt.ylabel('Number of immigrants') plt.xlabel('Years') plt.show()
接下來是畫餅圖,我們可以優化的點多了一些,比如說從餅塊的分離程度,我們先畫一個“低配版”的餅圖。
df1 = salary_ranges.groupby('SetID', axis=0).sum()
# 「低配版」餅圖 df1['Step'].plot(kind='pie', figsize=(7,7), autopct='%1.1f%%', shadow=True) plt.axis('equal') plt.show()
# 「高配版」餅圖 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()
散點圖可以優化的地方比較少了,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', on=['dt']) df12.head()
# 散點圖 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()
# 多條折線圖 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', on=['dt']) .merge(df3, how='inner', on=['dt']) .set_index(['dt']) df123.head()
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()
# 選擇上海部分天氣資料 df = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')] .loc[:,['dt','AverageTemperature']] .set_index('dt') df.head()
# 最簡單的直方圖 df['AverageTemperature'].plot(kind='hist', figsize=(8,5), colors=['grey']) plt.title('ShangHai AverageTemperature Of 2010-2013') # add a title to the histogram plt.ylabel('Number of month') # add y-label plt.xlabel('AverageTemperature') # add x-label plt.show()
# 選擇上海部分天氣資料 df = climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')] .loc[:,['dt','AverageTemperature']] .set_index('dt') df.head()
df.plot(kind='bar', figsize = (10, 6)) plt.xlabel('Month') plt.ylabel('AverageTemperature') plt.title('AverageTemperature of shanghai') plt.show()
df.plot(kind='barh', figsize=(12, 16), color='steelblue') plt.xlabel('AverageTemperature') plt.ylabel('Month') plt.title('AverageTemperature of shanghai') plt.show()
到此這篇關於Python利用matplotlib畫出漂亮的分析圖表的文章就介紹到這了,更多相關Python 繪製分析圖表內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45