Python可视化教程

1、确定问题,选择图形2、转换数据,应用函数3、参数设置,一目了然

01

首先,要知道我们用哪些库来画图

matplotlib

python中最基本的作图库就是matplotlib,是一个最基础的Python可视化库,一般都是从matplotlib上手Python数据可视化,然后开始做纵向与横向拓展。

Seaborn

是一个基于matplotlib的高级可视化效果库,针对的点主要是数据挖掘和机器学习中的变量特征选取,seaborn可以用短小的代码去绘制描述更多维度数据的可视化效果图。

其他库还包括

确定问题,选择图形

业务可能很复杂,但是经过拆分,我们要找到我们想通过图形表达什么具体问题。分析思维的训练可以学习《麦肯锡方法》和《金字塔原理》中的方法。

这是网上的一张关于图表类型选择的总结。

在python中,我们可以总结为以下四种基本视觉元素来展现图形:

数据间存在分布,构成,比较,联系以及变化趋势等关系。对应不一样的关系,选择相应的图形进行展示。

转换数据,应用函数

数据分析和建模方面的大量编程工作都是用在数据准备的基础上的:加载、清理、转换以及重塑。我们可视化步骤也需要对数据进行整理,转换成我们需要的格式再套用可视化方法完成作图。

下面是一些常用的数据转换方法:

函数则根据第一步中选择好的图形,去找python中对应的函数。

参数设置,一目了然

原始图形画完后,我们可以根据需求修改颜色(color),线型(linestyle),标记(maker)或者其他图表装饰项标题(Title),轴标签(xlabel,ylabel),轴刻度(set_xticks),还有图例(legend)等,让图形更加直观。

第三步是在第二步的基础上,为了使图形更加清晰明了,做的修饰工作。具体参数都可以在制图函数中找到。

下面,我总结了实现可视化会用到的一些基础知识

02

可视化作图基础

Matplotlib

Figure和Subplot

matplotlib的图形都位于Figure(画布)中,Subplot创建图像空间。不能通过figure绘图,必须用add_subplot创建一个或多个subplot。

figsize可以指定图像尺寸。

颜色color,标记marker,和线型linestyle

matplotlib的plot函数接受一组X和Y坐标,还可以接受一个表示颜色和线型的字符串缩写:'g--',表示颜色是绿色green,线型是'--'虚线。也可以使用参数明确的指定。

线型图还可以加上一些标记(marker),来突出显示数据点的位置。标记也可以放在格式字符串中,但标记类型和线型必须放在颜色后面。

plt的xlim、xticks和xtickslabels方法分别控制图表的范围和,刻度位置和刻度标签。

调用方法时不带参数,则返回当前的参数值;调用时带参数,则设置参数值。

添加图例

图例legend是另一种用于标识图标元素的重要工具。可以在添加subplot的时候传入label参数

除标准的图表对象之外,我们还可以自定义添加一些文字注解或者箭头。

注解可以通过text,arrow和annotate等函数进行添加。text函数可以将文本绘制在指定的x,y坐标位置,还可以进行自定义格式

保存图表到文件

利用plt.savefig可以将当前图表保存到文件。例如,要将图表保存为png文件,可以执行

plt.savefig('figpath.png')

文件类型是根据拓展名而定的。其他参数还有:

fname含有文件路径的字符串,拓展名指定文件类型dpi分辨率,默认100facecolor,edgcolor图像的背景色,默认'w’白色format显示设置文件格式('png','pdf','svg','ps','jpg'等)bbox_inches:图表需要保留的部分。如果设置为“tight”,则将尝试剪除图像周围的空白部分

plt.savefig('./plot.jpg')#保存图像为plot名称的jpg格式图像Pandas中的绘图函数

matplotlib是最基础的绘图函数,也是相对较低级的工具。组装一张图表需要单独调用各个基础组件才行。Pandas中有许多基于matplotlib的高级绘图方法,原本需要多行代码才能搞定的图表,使用pandas只需要短短几行。

我们使用的

importmatplotlib.pyplotasplt就调用了pandas中的绘图包

线形图

Series和DataFrame都有一个用于生成各类图表的plot方法。默认情况下,他们生成的是线型图。

label用于图表的标签style风格字符串,'g--'alpha图像的填充不透明度(0-1)kind图表类型(bar,line,hist,kde等)xticks设定x轴刻度值yticks设定y轴刻度值xlim,ylim设定轴界限,[0,10]grid显示轴网格线,默认关闭rot旋转刻度标签use_index将对象的索引用作刻度标签logy在Y轴上使用对数标尺

DataFrame.plot方法的参数

DataFrame除了Series中的参数外,还有一些独有的选项。

subplots将各个DataFrame列绘制到单独的subplot中sharex,sharey共享x,y轴figsize控制图像大小title图像标题legend添加图例,默认显示sort_columns以字母顺序绘制各列,默认使用当前顺序

柱状图

在生成线型图的代码中加上kind='bar’或者kind='barh’,可以生成柱状图或水平柱状图。

柱状图有一个非常实用的方法:利用value_counts图形化显示Series或者DF中各值的出现频率。

比如df.value_counts().plot(kind='bar')

Python可视化的基础语法就到这里,其他图形的绘制方法大同小异。

二、实践篇

%matplotlibinlineimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt#导入pltimportseabornassnsimportwarningswarnings.filterwarnings('ignore')#忽略警告加载数据

数据采用kaggle中的共享单车项目(本案例数据经过预处理)下载地址:

比赛提供了跨越两年的每小时共享单车租赁数据,包含天气信息和日期信息。

字段说明

datetime(日期)-hourlydate+timestampseason(季节)-1=spring,2=summer,3=fall,4=winterholiday(是否假日)-whetherthedayisconsideredaholidayworkingday(是否工作日)-whetherthedayisneitheraweekendnorholiday

weather(天气等级)-

1:Clear,Fewclouds,Partlycloudy清澈,少云,多云。

2:Mist+Cloudy,Mist+Brokenclouds,Mist+Fewclouds,Mist雾+阴天,雾+碎云、雾+少云、雾

3:LightSnow,LightRain+Thunderstorm+Scatteredclouds,LightRain+Scatteredclouds小雪、小雨+雷暴+散云,小雨+云

4:HeavyRain+IcePallets+Thunderstorm+Mist,Snow+Fog暴雨+冰雹+雷暴+雾,雪+雾

temp(温度)-temperatureinCelsiusatemp(体感温度)-'feelslike'temperatureinCelsiushumidity(相对湿度)-relativehumiditywindspeed(风速)-windspeedcasual(临时租赁数量)-numberofnon-registereduserrentalsinitiatedregistered(会员租赁数量)-numberofregistereduserrentalsinitiatedcount(总租赁数量)-numberoftotalrentalsdate(日期)-由datetime拆分得到hour(小时)-由datetime拆分得到year(年份)-由datetime拆分得到month(月份)-由datetime拆分得到weeekday(周几)-由datetime拆分得到windspeed_rfr(经过随机森林树填充0值得到的风速)

时段>温度>湿度>年份>月份>季节>天气>风速>工作日>节假日

对特征逐项分析

首先对时段进行分析

提出问题:租赁总量对应时段的变化趋势

适合图形:因为时段属于连续性数值变量,我们可以选择折线图反应变化趋势

转换数据:我们需要一个二维数据框,存储每个时段对应的三个租赁数,租赁数取平均值

应用函数:直接应用plt的plot函数即可完成折线图

对温度进行分析

提出问题:租赁总量对应温度的变化趋势

适合图形:因为温度属于连续性数值变量,我们可以选择折线图反应变化趋势

转换数据:我们需要一个二维数据框,按照温度变化排序,取对应的三个租赁数的平均值

参数设置:只需要设置折线图的标题,其他参数默认

湿度对租赁数量的影响

提出问题:租赁总量对应湿度的变化趋势

适合图形:因为湿度属于连续性数值变量,我们可以选择折线图反应变化趋势

可以观察到在湿度20左右租赁数量迅速达到高峰值,此后缓慢递减。

年份,月份和季节作图方法类似,都采用折线图绘制,这里省略。

查看不同天气对出行情况的影响

我们查看一下天气等级为4的详细情况:

天气状况为4级的只有一天,我们把数据打印出来查看一下

查看会员用户和临时用户在整体用户中的比例

提出问题:查看会员用户和临时用户在整体用户中的比例

适合图形:查看占比,适合用饼图pie

转换数据:需要一个二维数据框,按天数取两种用户的平均值

应用函数:应用plt的plot.pie函数绘制饼图

参数设置:这是数据标签和类别标签

总结

1.要清楚自己想表达什么,有了明确的问题,选择合适的图形,然后按照需求从整体数据中选择自己需要的数据,查阅资料了解函数的参数设置,最后完成图形的绘制。

2.matplotlib是python绘图的基础,也是其他拓展包的基础,认真学习matplotlib的常用图形和参数是很有必要的。

THE END
1.Python教程基础全版.pdf计算机 PythonPython教程-基础全版.pdf 640页内容提供方:icewind 大小:12.1 MB 字数:约54.26万字 发布时间:2022-11-29发布于上海 浏览人气:4204 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)Python教程-基础全版.pdf关闭...https://m.book118.com/html/2022/1127/6203013222005021.shtm
2.Python图像处理教程(Pillow)11画图与添加文字在这一节中,我们将主要关注以拉丁文为基础的文字的创建和定位,正如许多欧洲语言所使用的那样。Pillow能够处理其他书写系统,包括那些从右到左和垂直方向的文字,但我们在这里不涉及这些。 12.3.1 绘制简单文本 绘制简单文本有两个阶段。 选择一种字体。 使用该字体绘制一个文本字符串。 https://www.jianshu.com/p/44470d58729e
3.9.Pandas高级教程之:plot画图详解程序那些事9. Pandas高级教程之:plot画图详解简介python中matplotlib是非常重要并且方便的图形化工具,使用matplotlib可以可视化的进行数据分析,今天本文将会详细讲解Pandas中的matplotlib应用。基础画图要想使用matplotlib,我们需要引用它:In [1]: import matplotlib.pyplot as plt 假如...http://www.flydean.com/09-python-pandas-plot/
4.零基础入门用Python将数据可视化画图示例萌泡泡【零基础入门】用Python将数据可视化-画图示例 1.安装Python 参考的大橘子呀博主的小白教程https://blog.csdn.net/nmjuzi/article/details/79075736 2.安装后如遇pip异常 安装后,pip无法正常工作,一顿操作后自己写了一种解决方法https://blog.csdn.net/qq_33013661/article/details/108794472...https://www.cnblogs.com/cuteBubble/p/13786731.html
1.Python学习笔记MJ大神的Python课,课堂笔记 int 和float运算结果是 float 除法(/)的结果是float 整除(//),向下取整(floor) int 和 int 进行整除(//),得到的结果是int 绘制一个填充色+边框色 importturtle# 绘制一个填充色+边框色turtle.hideturtle()turtle.pencolor('green')turtle.pensize(10)turtle.fillcolor('yellow')...https://blog.csdn.net/IOSSHAN/article/details/144096411
2.面向初学者的Python开始使用 Python! 了解如何使用 Python 创建程序和项目。 使用字符串、列表、循环、字典和函数。 在此学习路径下,你将: 编写你的第一个 Python 程序 探索包以改进项目管理 了解Python 基础知识,包括以下元素: 布尔型 字符串 数学运算 列表和循环 字典 https://docs.microsoft.com/zh-cn/learn/paths/beginner-python
3.Python的画图模块matplotlib基础教程51CTO博客Python的画图模块matplotlib基础教程 介绍 Matplotlib是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式,如条形图,散点图,条形图,饼图,堆叠图,3D 图,地图图表等。 详细学习请参考官方网址http://matplotlib.org/。本文只做简单介绍。https://blog.51cto.com/u_15127592/2673686
4.PythonMatplotlib绘图基础详细教程Mysqlmatplotlib是python中用于绘制各种图像的模块,功能十分强大,通常与pandas模块搭配使用,可以生成各种样视的图片,用于数据的分析和展示,下面这篇文章主要给大家介绍了关于Python Matplotlib绘图基础的相关资料,需要的朋友可以参考下 plt是最常用的接口 1. 画图的基本步骤 ...https://m.jb51.net/article/253730.htm
5.Pandas高级教程之:plot画图详解腾讯云开发者社区python中matplotlib是非常重要并且方便的图形化工具,使用matplotlib可以可视化的进行数据分析,今天本文将会详细讲解Pandas中的matplotlib应用。 基础画图 要想使用matplotlib,我们需要引用它: 代码语言:javascript 复制 In [1]: import matplotlib.pyplot as plt 假如我们要从2020年1月1日开始,随机生成365天的数据,然后作图...https://cloud.tencent.com/developer/article/1842965
6.Python3基础教程完整版Python3 基础教程【完整版】 print('hello, world') 然后,通过命令给 以执行权限: $ chmod a+x 就可以直接运行 了,比如在 Mac 下运行: 小结 用文本编辑器写 Python 程序,然后保存为后缀为.py的文件,就可以用 Python 直接运行这个程序了。 Python3 基础教程【完整版】 Python3 基础教程【完整版】 --- pr...https://doc.mbalib.com/view/d34321cb14c52363f6d8fb99a0252b0e.html
7.Python一级等级考试知识点总结(不含turtle画图)物联沃首先,python一级考试都是比较基础的知识,大概包括python的一些常识知识,以及简单的数据类型,类型转换,输入输出函数,运算符,turtle画图等等,难度小,甚至根本不会考循环,判断之类的。废话不多说,上干货,文章可能有点长。表格都比较重要,除了表格之外,考点都用深红色做了标记,只想知道考点的可以快速浏览。 https://www.iotword.com/24303.html
8.GitHubPython之MatPlotLib使用教程 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇 标注工具 数据集 会议列表 Visio2016 Matplotlib ResearchGo 吐血推荐收藏的学位论文排版教程(完整版) 论文怎么写——如何修改毕业论文格式 机器学习、深度学习基础理论 信息论 ...https://github.com/forlovess/DeepLearning