小編寫這篇文章的一個(gè)主要目的,主要是給大家講解Python事宜,主要是利用Python中的matplotlib去做數(shù)據(jù)分析表,當(dāng)我們把數(shù)據(jù)分析表做出來(lái)之后,怎么才能做的夠漂亮一些呢?下面就給大家詳細(xì)解答下。
前言
作為一名優(yōu)秀的分析師,還是得學(xué)會(huì)一些讓圖表漂亮的技巧,這樣子拿出去才更加有面子哈哈。好了,今天的錦囊就是介紹一下各種常見(jiàn)的圖表,可以怎么來(lái)畫吧。
數(shù)據(jù)集引入
首先引入數(shù)據(jù)集,我們還用一樣的數(shù)據(jù)集吧,分別是Salary_Ranges_by_Job_Classification以及GlobalLandTemperaturesByCity。(具體數(shù)據(jù)集可以后臺(tái)回復(fù)plot獲取)
#導(dǎo)入一些常用包 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') #解決中文顯示問(wèn)題,Mac from matplotlib.font_manager import FontProperties #查看本機(jī)plt的有效style print(plt.style.available) #根據(jù)本機(jī)available的style,選擇其中一個(gè),因?yàn)橹爸纆gplot很好看,所以我選擇了它 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'] #數(shù)據(jù)集導(dǎo)入 #引入第1個(gè)數(shù)據(jù)集Salary_Ranges_by_Job_Classification salary_ranges=pd.read_csv('./data/Salary_Ranges_by_Job_Classification.csv') #引入第2個(gè)數(shù)據(jù)集GlobalLandTemperaturesByCity climate=pd.read_csv('./data/GlobalLandTemperaturesByCity.csv') #移除缺失值 climate.dropna(axis=0,inplace=True) #只看中國(guó) #日期轉(zhuǎn)換,將dt轉(zhuǎn)換為日期,取年份,注意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()
折線圖
折線圖是比較簡(jiǎn)單的圖表了,也沒(méi)有什么好優(yōu)化的,顏色看起來(lái)順眼就好了。下面是從網(wǎng)上找到了顏色表,可以從中挑選~
#選擇上海部分天氣數(shù)據(jù)
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()
餅圖
接下來(lái)是畫餅圖,我們可以優(yōu)化的點(diǎn)多了一些,比如說(shuō)從餅塊的分離程度,我們先畫一個(gè)“低配版”的餅圖。
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]#控制餅圖分離狀態(tài),越大越分離 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()
散點(diǎn)圖
散點(diǎn)圖可以優(yōu)化的地方比較少了,ggplot2的配色都蠻好看的,正所謂style選的好,省很多功夫!
#選擇上海部分天氣數(shù)據(jù) 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()
#散點(diǎn)圖 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()
直方圖
#選擇上海部分天氣數(shù)據(jù) df=climate.loc[(climate['Country']=='China')&(climate['City']=='Shanghai')&(climate['dt']>='2010-01-01')] .loc[:,['dt','AverageTemperature']] .set_index('dt') df.head()
#最簡(jiǎn)單的直方圖 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()
條形圖
#選擇上海部分天氣數(shù)據(jù) 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()
綜上所述,這篇文章就給大家介紹完畢,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/128354.html
小編寫這篇文章的一個(gè)主要目的,主要是給大家去做一個(gè)解答,解答的內(nèi)容主要是Python相關(guān)知識(shí),比如說(shuō),會(huì)給大家講解怎么樣去利用Python pandas去做一個(gè)讀取,讀取的是csv數(shù)據(jù),然后將這些數(shù)據(jù)去做一個(gè)繪圖處理,具體內(nèi)容下面給大家詳細(xì)解答。 如何利用pandas讀取csv數(shù)據(jù)并繪圖 導(dǎo)包,常用的numpy和pandas,繪圖模塊matplotlib, importmatplotli...
小編寫這篇文章的主要目的,主要是來(lái)給大家解答關(guān)于Python Pycharm的一些相關(guān)問(wèn)題,包括涉及到如何調(diào)用其maplotlib的相關(guān)繪圖問(wèn)題,另外還涉及到圖像彈出問(wèn)題等的一些相關(guān)介紹。那么,具體問(wèn)題怎么解答呢?下面就給大家詳細(xì)解答下。 問(wèn)題描述 在PyCharm中調(diào)用matplotlib繪制圖像時(shí),默認(rèn)圖像會(huì)在控制臺(tái)輸出(如圖),當(dāng)繪制圖像較多時(shí),控制臺(tái)輸出方式很不直觀。 問(wèn)題解決 ...
摘要:在上一篇文章圖工具的優(yōu)化實(shí)現(xiàn)文本居中中,我們已經(jīng)實(shí)現(xiàn)了對(duì)插入字體的左中右對(duì)齊顯示,那因?yàn)樯掀谖恼禄爝M(jìn)去了不少語(yǔ)法講解,所以后面的內(nèi)容就順延到這啦,哈哈哈。 showImg(https://segmentfault.com/img/bVbeIu4?w=250&h=250); 在上一篇文章【圖工具的優(yōu)化——實(shí)現(xiàn)文本居中】中,我們已經(jīng)實(shí)現(xiàn)了對(duì)插入字體的左中右對(duì)齊顯示,那因?yàn)樯掀谖恼禄爝M(jìn)去了不...
Python Matplotlib作為一種可視化的工具,可以利用其可視化的應(yīng)用,去做到繪制圖形,比如可以利用其Matplotlib去進(jìn)行繪制圖形,具體的操作方法要做到什么樣呢?下面就給大家詳細(xì)解答下。 前言 Matplotlib可能是Python 2D-繪圖領(lǐng)域使用最廣泛的套件。它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。這里將會(huì)探索使用matplotlib庫(kù)實(shí)現(xiàn)簡(jiǎn)單的圖形...
摘要:小安分析的數(shù)據(jù)主要是用戶使用代理訪問(wèn)日志記錄信息,要分析的原始數(shù)據(jù)以的形式存儲(chǔ)。下面小安帶小伙伴們一起來(lái)管窺管窺這些數(shù)據(jù)。在此小安一定一定要告訴你,小安每次做數(shù)據(jù)分析時(shí)必定使用的方法方法。 隨著網(wǎng)絡(luò)安全信息數(shù)據(jù)大規(guī)模的增長(zhǎng),應(yīng)用數(shù)據(jù)分析技術(shù)進(jìn)行網(wǎng)絡(luò)安全分析成為業(yè)界研究熱點(diǎn),小安在這次小講堂中帶大家用Python工具對(duì)風(fēng)險(xiǎn)數(shù)據(jù)作簡(jiǎn)單分析,主要是分析蜜罐日志數(shù)據(jù),來(lái)看看一般大家都使用代理i...
閱讀 926·2023-01-14 11:38
閱讀 899·2023-01-14 11:04
閱讀 758·2023-01-14 10:48
閱讀 2063·2023-01-14 10:34
閱讀 965·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 590·2023-01-14 10:02