数据可视化是数据分析中最重要的工作之一。在数据探索阶段,可视化有助于我们了解数据的基本分布与简单规律;在数据分析结果阶段,可视化呈现的结果更加直观、醒目。按照数据之间的关系,我们可以把可视化视图分为四类:比较、联系、构成和分布。数据之间表现的这四种关系主要特点如下:

  • 比较:比较数据间各类别的关系,或者是它们随时间的变化趋势,比如折线图;

  • 联系:查看两个或两个以上变量之间的关系,比如散点图;

  • 构成:每个部分占整体的百分比,或者是随时间的百分比变化,比如饼图;

  • 分布:关注单个变量,或者多个变量的分布情况,比如直方图与散点图。

在Python中,常用的可视化库有:

  • matplotlib

  • seaborn

seaborn 跟 matplotlib 最大的区别就是它的默认绘图风格和色彩搭配都更具有现代美感,其实是在 matplotlib 的基础上进行了更高级的 API 封装,能用更少的代码去调用 matplotlib 的方法,从而使得作图更加容易,在大多数情况下使用 seaborn 就能做出很具有吸引力的图,而使用 matplotlib 就能制作具有更多特色的图。应该把 seaborn 视为 matplotlib 的补充,而不是替代。matplotlib 中最基础的模块是 pyplot ,下面从最简单的折线图开始讲解,主要操作流程包括:

创建图像对象

使用figure函数来创建

输入数据参数

导入数据

在窗口里面绘图与标记内容

线条粗细、颜色、形状、横坐标纵坐标等等

>>> import matplotlib.pyplot as plt # 载入matplotlib的子模块pyplot>>> fig = plt.figure(figsize=(10,8))  # 指定图像大小与纵横比

其中 figsize=(10,8) 是用来指定图像的大小与纵横比,下面以折线图为例,来介绍 matplotlib 中常用的命令与步骤

>>> input_value = [1,2,3,4,5]  # 输入值>>> squares = [1,4,9,16,25]    # 输出值>>> plt.plot(input_value,squares,linewidth=5)  # 设置线条的粗细>>> plt.title("Square Numbers",fontsize=24)    # 给图表指定标题>>> plt.xlabel("Value ",fontsize=14)           # 为x轴设置标题>>> plt.ylabel("Square of value",fontsize=14)  # 为y轴设置标题>>> plt.tick_params(axis='both',labelsize=12)  # 设置刻度标记大小>>> plt.show()      # 打开 matplotlib 查看器

最终得到的图像如下所示。注意,pyplot模块的plot函数可以接收其他参数,如线条粗细、颜色、线条形状等。plot 函数里面常用的关键字参数如下:

plt.plot(x,y,color='green',marker='o',linestyle='dashed',linewidth=1,markersize=6)# (x,y):横坐标与纵坐标的w位置# color:颜色参数# marker:数据点形状参数# linestyle:线型参数,包括:虚线、实现或点线# linewidth:  线条粗细参数# markersize: 数据点大小参数

如果需要在一个窗口同时画几个不同的子图,可以利用 Matplotlib 的如下命令来实现:

>>> import numpy as np>>> x = np.random.randint(1,10,8) # 从均匀分布随机抽取8个数据>>> label = list('abcdefgh') # 对上述8个数据标记字母>>> plt.subplot(211) # 指定2行1列第1个子图0x09705290>>>> plt.bar(label,x) # 在指定的子图上绘制垂直柱状图8 artists>>>> plt.subplot(212) # 指定2行1列第2个子图0x0B8140F0>>>> plt.barh(label,x) # 在指定的子图上绘制水平柱状图8 artists>>>> plt.show()

注意,垂直柱状图用 plt.bar() ,水平柱状图用 plt.barh() ,图像如下所示:

利用 pyplot 绘制直方图的命令格式如下:

plt.hist(data,bins=40,normed=0,facecolor="blue",edgecolor="black",alpha=0.7)# data       必选参数,绘图数据# bins       直方图的长条形数目,可选项,默认为0# normed     直方图向量是否进行归一化,默认为0代表不归一化,显示频数# normed=1                                1表示归一化,显示频率# facecolor  长条形的颜色# edgecolor  长条形边框的颜色# alpha      透明度

下面以具体的实例来说明如何绘制直方图:

>>> import matplotlib>>> import numpy as np>>> # 设置matplotlib 正常显示中文和负号>>> matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文>>> matplotlib.rcParams['axes.unicode_minus']=False   # 正常显示负号>>> data = np.random.randn(10000)  # 随机生成10000个服从正态分布的数据>>> len(data)10000>>> plt.hist(data,bins=40,normed=0,facecolor="blue",edgecolor="black",alpha=0.7)>>> plt.xlabel("区间")  # 显示横轴标签>>> plt.ylabel("频数/频率") # 显示纵轴标签>>> plt.title("频数/频率分布直方图") # 显示图标题>>> plt.show()  # 显示图像

箱形图 boxplot以一种相对稳定的方式描述数据的离散分布情况,箱形图最大的有点就是不受异常值的影响。从箱形图中可以清晰的看出异常值是否存在,中位数与平均值的差异。在Python中画箱形图,以 matplotlib 结合 seaborn 的方式使得编写代码简洁、绘图更有美感。

>>> import matplotlib.pyplot as plt>>> import seaborn as sns>>> iris = sns.load_dataset("iris")>>> sns.boxplot(x=iris['species'],y=iris['sepal_width'])>>> plt.show()  # 显示图像

图像如下:

热点图 heatmap 作为一种密度图,热力图一般使用具备显著颜色差异的方式来呈现数据效果,热力图中亮色一般代表时间发生频率较高或事物分布密度较大,暗色则反之。

import matplotlib.pyplot as pltimport seaborn as sns# Load the example flights dataset and convert to long-formflights_long = sns.load_dataset("flights")flights = flights_long.pivot("month", "year", "passengers")# Draw a heatmap with the numeric values in each cellf, ax = plt.subplots(figsize=(9, 6))sns.heatmap(flights, annot=True, fmt="d", linewidths=.5, ax=ax)

Pairplot 主要展现的是变量两两之间的关系(线性或非线性,有无明显的相关关系)

import matplotlib.pyplot as pltimport seaborn as snsiris = sns.load_dataset("iris")sns.pairplot(iris)

对角线上是各个属性的直方图(分布图),而非对角线上是两个不同属性之间的相关图,从图中我们发现,花瓣的长度和宽度之间以及萼片的长短和花瓣的长、宽之间具有比较明显的相关关系。

matplotlib柱状图上方显示数据_Python基础数据可视化相关推荐

  1. matplotlib柱状图上方显示数据_Python数据可视化之matplotlib

    数据可视化能让人们更直观的传递数据所要表达的信息.Python 中有两个专用于可视化的库,matplotlib 和 seaborn ,本文将介绍matplotlib. Matplotlib:基于Pyt ...

  2. matplotlib柱状图上方显示数据_可视化技能之Matplotlib(上)|可视化系列01

         作者:蜇虫适航      来源:蜇虫适航 Matplotlib可以说是Python最声名远扬的可视化库了,也是Python数据分析库的"三驾马车"之一.Matplotli ...

  3. matplotlib柱状图上方显示数据_Python数据分析matplotlib可视化之绘图!

    Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...

  4. matplotlib柱状图上方显示数据_使用 matplotlib 的两种姿势

    点击上"蓝字"关注我们 本文环境说明熊猫本次用的是 Anaconda 的 jupyter notebook 编写的本文代码.今天用到的库都是已经集成好的,无须另行安装.每个库的版本 ...

  5. 业务数据与基础数据思考

    业务数据的产生与修改基于基础数据,但业务数据的统计分析等不应依赖于基础数据. 基础数据的作用就是以此为基础产生业务数据,业务数据一旦产生和修改完成,就已经与基础数据无关系了. 不应由于自己处理逻辑不正 ...

  6. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  7. python中显示第三行数据_Python数据分析及可视化-小测验

    image.png 首先将5题的文件复制形成副本,如下图所示: image.png 在资源管理器的路径中输入cmd,如下图所示: image.png 在上图中输入后,按Enter键运行进入cmd窗口. ...

  8. python保存数据_Python 保存数据的方法(4种方法)

    Python 保存数据的方法: open函数保存 使用with open()新建对象 写入数据(这里使用的是爬取豆瓣读书中一本书的豆瓣短评作为例子) import requests from lxml ...

  9. python怎么清洗数据_Python分析数据之:清洗数据全攻略

    前两天翻了翻数据分析的招聘简历,看到好多公司在招聘数据分析师的时候,不管前面要求什么,都会在最后加一句:能够会Python是加分项.那Python是有多好用?今儿一篇文章教会你用Python来分析数据 ...

最新文章

  1. Sql Server中Select @Value和Select Value的区别
  2. python笔记-排序函数
  3. Elasticsearch启动问题:max number of threads [3753] for user [XX] is too low, increase to at least [4096]
  4. android Q版本外部存储问题以及获取空间大小问题
  5. oracle 之 安装后pl/sql登录报ora-12154
  6. poj 1201 差分约束
  7. Good Numbers(HDU5447+唯一分解)
  8. 混凝土静力受压弹性模量试验计算公式_混凝土试块检测要知道的9个技巧
  9. python导出excel数据表中追加数据_python pandas在已存在的excel中追加数据
  10. Gesture APIs-Furthering Windows Mobile 6.5 Touch Gesture Framework
  11. 深度学习CNN, R-CNN
  12. 关于WINDOWS超级终端的使用来调试MODEM,串口.
  13. IXDC2018国际体验设计大会精华汇总,微软、阿里巴巴、小米、Adobe等大咖都说了啥?...
  14. QT_kvaser动态链接库配置
  15. 解决:关于 “VMware Workstation 不可恢复错误- (vcpu-0)”
  16. asp.net mvc 学习总结
  17. 深度卷积神经网络最新进展综述
  18. 安卓框架访问QQ文件的路径miui13
  19. Oracle 10.2.0.5 + OFS 3.4.2 双节点集群
  20. cvte暑期实习经历

热门文章

  1. Integrated Skills of English_Unit2_Why My Great-uncle Gave Up the Ministry
  2. SQL,什么时候用自身连接????
  3. 才刚满30岁,就中年危机了...
  4. 论军人的战斗意志—亮剑精神
  5. 人工智能对生活有哪些方面影响?
  6. Faster-Rcnn 网络训练医学乳腺DDSM图像不能预测到定位框问题及其训练问题
  7. 微信小程序背景图真机显示不了
  8. iOS开发脚踏实地学习day01-02-加法计算器和图片移动缩放旋转
  9. ⭐李宏毅2020作业2---logistic regression
  10. 给LSTM网络训练的数据添加标签(三维数组的一维增加数据)