小編寫這篇文章的一個主要目的,主要是給大家講解Python事宜,主要是利用Python中的matplotlib去做數據分析表,當我們把數據分析表做出來之后,怎么才能做的夠漂亮一些呢?下面就給大家詳細解答下。
前言
作為一名優秀的分析師,還是得學會一些讓圖表漂亮的技巧,這樣子拿出去才更加有面子哈哈。好了,今天的錦囊就是介紹一下各種常見的圖表,可以怎么來畫吧。
數據集引入
首先引入數據集,我們還用一樣的數據集吧,分別是Salary_Ranges_by_Job_Classification以及GlobalLandTemperaturesByCity。(具體數據集可以后臺回復plot獲?。?/p>
#導入一些常用包 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()
綜上所述,這篇文章就給大家介紹完畢,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128354.html
小編寫這篇文章的一個主要目的,主要是給大家去做一個解答,解答的內容主要是Python相關知識,比如說,會給大家講解怎么樣去利用Python pandas去做一個讀取,讀取的是csv數據,然后將這些數據去做一個繪圖處理,具體內容下面給大家詳細解答?! ∪绾卫胮andas讀取csv數據并繪圖 導包,常用的numpy和pandas,繪圖模塊matplotlib, importmatplotli...
小編寫這篇文章的主要目的,主要是來給大家解答關于Python Pycharm的一些相關問題,包括涉及到如何調用其maplotlib的相關繪圖問題,另外還涉及到圖像彈出問題等的一些相關介紹。那么,具體問題怎么解答呢?下面就給大家詳細解答下?! 栴}描述 在PyCharm中調用matplotlib繪制圖像時,默認圖像會在控制臺輸出(如圖),當繪制圖像較多時,控制臺輸出方式很不直觀?! 栴}解決 ...
摘要:在上一篇文章圖工具的優化實現文本居中中,我們已經實現了對插入字體的左中右對齊顯示,那因為上期文章混進去了不少語法講解,所以后面的內容就順延到這啦,哈哈哈。 showImg(https://segmentfault.com/img/bVbeIu4?w=250&h=250); 在上一篇文章【圖工具的優化——實現文本居中】中,我們已經實現了對插入字體的左中右對齊顯示,那因為上期文章混進去了不...
Python Matplotlib作為一種可視化的工具,可以利用其可視化的應用,去做到繪制圖形,比如可以利用其Matplotlib去進行繪制圖形,具體的操作方法要做到什么樣呢?下面就給大家詳細解答下?! ∏把浴 atplotlib可能是Python 2D-繪圖領域使用最廣泛的套件。它能讓使用者很輕松地將數據圖形化,并且提供多樣化的輸出格式。這里將會探索使用matplotlib庫實現簡單的圖形...
摘要:小安分析的數據主要是用戶使用代理訪問日志記錄信息,要分析的原始數據以的形式存儲。下面小安帶小伙伴們一起來管窺管窺這些數據。在此小安一定一定要告訴你,小安每次做數據分析時必定使用的方法方法。 隨著網絡安全信息數據大規模的增長,應用數據分析技術進行網絡安全分析成為業界研究熱點,小安在這次小講堂中帶大家用Python工具對風險數據作簡單分析,主要是分析蜜罐日志數據,來看看一般大家都使用代理i...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02