小编写这篇文章的一个主要目的,主要是给大家讲解Python事宜,主要是利用Python中的matplotlib去做数据分析表,当我们把数据分析表做出来之后,怎么才能做的够漂亮一些呢?下面就给大家详细解答下。
前言
作为一名优秀的分析师,还是得学会一些让图表漂亮的技巧,这样子拿出去才更加有面子哈哈。好了,今天的锦囊就是介绍一下各种常见的图表,可以怎么来画吧。
数据集引入
首先引入数据集,我们还用一样的数据集吧,分别是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()
综上所述,这篇文章就给大家介绍完毕,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128354.html
小编写这篇文章的一个主要目的,主要是给大家去做一个解答,解答的内容主要是Python相关知识,比如说,会给大家讲解怎么样去利用Python pandas去做一个读取,读取的是csv数据,然后将这些数据去做一个绘图处理,具体内容下面给大家详细解答。 如何利用pandas读取csv数据并绘图 导包,常用的numpy和pandas,绘图模块matplotlib, importmatplotli...
小编写这篇文章的主要目的,主要是来给大家解答关于Python Pycharm的一些相关问题,包括涉及到如何调用其maplotlib的相关绘图问题,另外还涉及到图像弹出问题等的一些相关介绍。那么,具体问题怎么解答呢?下面就给大家详细解答下。 问题描述 在PyCharm中调用matplotlib绘制图像时,默认图像会在控制台输出(如图),当绘制图像较多时,控制台输出方式很不直观。 问题解决 ...
摘要:在上一篇文章图工具的优化实现文本居中中,我们已经实现了对插入字体的左中右对齐显示,那因为上期文章混进去了不少语法讲解,所以后面的内容就顺延到这啦,哈哈哈。 showImg(https://segmentfault.com/img/bVbeIu4?w=250&h=250); 在上一篇文章【图工具的优化——实现文本居中】中,我们已经实现了对插入字体的左中右对齐显示,那因为上期文章混进去了不...
Python Matplotlib作为一种可视化的工具,可以利用其可视化的应用,去做到绘制图形,比如可以利用其Matplotlib去进行绘制图形,具体的操作方法要做到什么样呢?下面就给大家详细解答下。 前言 Matplotlib可能是Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索使用matplotlib库实现简单的图形...
摘要:小安分析的数据主要是用户使用代理访问日志记录信息,要分析的原始数据以的形式存储。下面小安带小伙伴们一起来管窥管窥这些数据。在此小安一定一定要告诉你,小安每次做数据分析时必定使用的方法方法。 随着网络安全信息数据大规模的增长,应用数据分析技术进行网络安全分析成为业界研究热点,小安在这次小讲堂中带大家用Python工具对风险数据作简单分析,主要是分析蜜罐日志数据,来看看一般大家都使用代理i...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 685·2023-01-14 10:48
阅读 1888·2023-01-14 10:34
阅读 892·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02