导入相关模块

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

基本图表

散点图:scatter

N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x,y)
plt.show()

scatter的函数签名如下

scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,verts=None,edgecolors=None,hold=None,data=None,**kwargs)
  • x,y:形如shape(n,)的数组
  • s:点的大小,默认20
  • c:点的取色序列,默认蓝色
  • marker:点的形状,默认是圆(具体的点的形状可以在matplotlib的官网中搜索markers查看。)
  • alpha:点的透明度
  • edgecolors:边缘颜色
plt.scatter(x,y,c='rykgm',s=100,marker='>')
plt.show()

plt.scatter(x,y,alpha=0.5)
plt.show()

plt.scatter(x,y,edgecolors='r')
plt.show()

柱状图:bar

data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data)
plt.show()

bar的函数签名如下:

bar(left, height, width=0.8, bottom=None, **kwargs)

事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小,具体定位如下:

  • (left - width / 2, bottom)为左下角位置
  • (left + width / 2, bottom + height)为右上角位置
plt.bar([0.3,1.7,4,6,7], data, width=0.6,bottom=[10,0,5,0,5])
plt.show()

对于柱状图,还可以设置以下参数:

  • 颜色:color
  • 描边:edgecolor(ec):边缘颜色;linestyle(ls):边缘样式;linewidth(lw):边缘粗细
  • 填充:hatch:可取值为: / , \ , | , - , + , x , o , O , . , *
  • 位置标志:tick_label
labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']
plt.bar(range(len(data)),data, color='rgb',ec='r',ls='--',lw=2,hatch='o',tick_label=labels)
plt.show()

堆叠柱状图

通过bottom参数,可以轻松实现堆叠柱状图

size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)
plt.bar(x, a, label='a')
plt.bar(x, b, bottom=a, label='b')
plt.legend()
plt.show()

并列柱状图

并列柱状图则需要通过left属性添加偏移量来实现

total_width, n = 0.8, 2
width = total_width / n
x = x - (total_width - width) / 2 plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.legend()
plt.show()

条形图

类似bar方法,仅换了方法名称:barh(bar-horizontal)

plt.barh(range(len(data)), data)
plt.show()

barh的签名为

barh(bottom, width, height=0.8, left=None, **kwargs)

因此,使用时可以看成是bar的旋转,其方法完全一样

正负条形图

可以通过barh方法轻松获得

a = np.array([5, 20, 15, 25, 10])
b = np.array([10, 15, 20, 15, 5]) plt.barh(range(len(a)), a)
plt.barh(range(len(b)), -b)
plt.show()

折线图:plot

a = np.array([5, 20, 15, 25, 10])
plt.plot(a)
plt.show()

和柱状图类似,plot也提供了一些常用的参数,折线图含有两种对象:点和线,因此,可以分别对点和线进行设置,对线的设置与柱状图类似,参数有ls、lw;对点的设置可以参照scatter中的参数,为了区分点和线,规定在点参数前添加一个字母m(marker)来表示,至于线的颜色,可以通过color(c)参数来设置。因此,一个简单的参数设置可以如下表示:

plt.plot(a, color='r',ls='--',lw=2,marker='o',mec='b',ms=10, mfc='w')
plt.show()

plot还提供了一个更简洁的方法:合并color、marker、linestyle三个参数为一个字符串,方便设置。

plt.plot(a,'ro--')
plt.show()

在做数据可视化的时候,常用的基本图表有折线图、散点图和柱状图三种,其它诸如饼图、箱形图等出现较少,第一部分暂不处理。有了这些图标已经可以做一些基本的分析了,下一节中,将介绍一些常用的设置,诸如坐标轴、标签等。

参考

数据可视化——Matplotlib(1)的更多相关文章

  1. python 爬虫与数据可视化--matplotlib模块应用

    一.数据分析的目的(利用大数据量数据分析,帮助人们做出战略决策) 二.什么是matplotlib? matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB ...

  2. 数据可视化matplotlib、seaborn、pydotplus

    如需转发,请注明出处:小婷儿的python  https://www.cnblogs.com/xxtalhr/p/10486560.html 一.数据可视化 data.mat 链接:https://p ...

  3. Python数据可视化--matplotlib

    抽象化|具体化: 如盒形图 | 现实中的图 功能性|装饰性:没有装饰和渲染 | 包含艺术性美学上的装饰 深度表达|浅度表达:深入层次的研究探索数据 | 易于理解的,直观的表示 多维度|单一维度:数据的 ...

  4. Python数据可视化matplotlib和seaborn

    Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...

  5. python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

    除了从文件加载数据,另一个数据源是互联网,互联网每天产生各种不同的数据,可以用各种各样的方式从互联网加载数据. 一.了解 Web API Web 应用编程接口(API)自动请求网站的特定信息,再对这些 ...

  6. 数据可视化——matplotlib(2)

    导入相关模块 import matplotlib.pyplot as plt import numpy as np import pandas as pd 图表设置 添加X.Y轴标签以及图标标题 a ...

  7. 数据可视化-matplotlib包

    pyplot官网教程https://matplotlib.org/users/pyplot_tutorial.html #导入matplotlib的pyplot模块 import matplotlib ...

  8. 数据可视化----matplotlib.pylot

    一.输入具体数 plt.plot([3,1,4,5,2]) #自动生成y轴 plt.ylabel("Grade") #y轴的标签 plt.savefig('test1',dpi=6 ...

  9. <数据可视化>Matplotlib(2D+3D)

    1.Matplotlib介绍(2D) Matplotlib 是 Python 2D-绘图领域使用最广泛的套件.它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式. pylab 是 matplo ...

随机推荐

  1. Python并行编程(一):基本概念

    1.线程和进程 进程是应用程序的一个执行实例,比如,在桌面上双击浏览器将会运行一个浏览器.线程是一个控制流程,可以在进程内与其他活跃的线程同时执行.控制流程指的是顺序执行一些机器指令.进程可以包含多个 ...

  2. 2.AS入门教程

    AndroidStudio 本文是关于androidStudio的一些基础知识 介绍 Google官方的Android集成开发环境(IDE = Integrated Development Envir ...

  3. Deep learning与Neural Network

    深度学习是机器学习研究中的一个新的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本.深度学习是无监督学习的一种. 深度学习的概念源于人工神经网络的 ...

  4. PHP压缩与解压Zip(PHPZip类)

    <?php     class PHPZip     {         private $ctrl_dir     = array();         private $datasec    ...

  5. Bootstrap 中的插件的学习2(导航)

    实例 在导航栏内 下面的实例演示了在导航栏内的下拉菜单的用法: <!DOCTYPE HTML> <html> <head> <link href=" ...

  6. 235. Lowest Common Ancestor of a Binary Search Tree(LCA最低公共祖先)

      Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the ...

  7. eclipse调整字体大小

    window->preferences->general->appearance->colors and fonts-> 双击Text Font 就调整字体大小了

  8. iPhone X 游戏闪退:NSUnknownKeyException

    目前很多游戏在iPhone X手机 wifi情况下,启动时候闪退,在4G网络时候不闪退. 闪退的log: #0 Thread NSUnknownKeyException [<UIStatusBa ...

  9. Ubuntu16.04中用et对jmeter生成的数据统计成图表

    在Ubuntu系统中,用ctrl+Alt+t 打开终端: 输入et,即打开wps: 整理需要形成图表的数据,如: 用excel生成图表,如下: 表得出的性能图表,方法: 1.工具栏中选择插入——二维折 ...

  10. JavaScript校验网址

    JavaScript校验网址 var linkUrl = 'https://www.baidu.com' if( typeof (linkUrl) != undefined && li ...