数据可视化——Matplotlib(1)
导入相关模块
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()

在做数据可视化的时候,常用的基本图表有折线图、散点图和柱状图三种,其它诸如饼图、箱形图等出现较少,第一部分暂不处理。有了这些图标已经可以做一些基本的分析了,下一节中,将介绍一些常用的设置,诸如坐标轴、标签等。
参考
- http://www.cnblogs.com/sunshinewang/p/6853813.html
- https://zhuanlan.zhihu.com/p/25128216
- https://zhuanlan.zhihu.com/p/25112553
数据可视化——Matplotlib(1)的更多相关文章
- python 爬虫与数据可视化--matplotlib模块应用
一.数据分析的目的(利用大数据量数据分析,帮助人们做出战略决策) 二.什么是matplotlib? matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB ...
- 数据可视化matplotlib、seaborn、pydotplus
如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10486560.html 一.数据可视化 data.mat 链接:https://p ...
- Python数据可视化--matplotlib
抽象化|具体化: 如盒形图 | 现实中的图 功能性|装饰性:没有装饰和渲染 | 包含艺术性美学上的装饰 深度表达|浅度表达:深入层次的研究探索数据 | 易于理解的,直观的表示 多维度|单一维度:数据的 ...
- Python数据可视化matplotlib和seaborn
Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...
- python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结
除了从文件加载数据,另一个数据源是互联网,互联网每天产生各种不同的数据,可以用各种各样的方式从互联网加载数据. 一.了解 Web API Web 应用编程接口(API)自动请求网站的特定信息,再对这些 ...
- 数据可视化——matplotlib(2)
导入相关模块 import matplotlib.pyplot as plt import numpy as np import pandas as pd 图表设置 添加X.Y轴标签以及图标标题 a ...
- 数据可视化-matplotlib包
pyplot官网教程https://matplotlib.org/users/pyplot_tutorial.html #导入matplotlib的pyplot模块 import matplotlib ...
- 数据可视化----matplotlib.pylot
一.输入具体数 plt.plot([3,1,4,5,2]) #自动生成y轴 plt.ylabel("Grade") #y轴的标签 plt.savefig('test1',dpi=6 ...
- <数据可视化>Matplotlib(2D+3D)
1.Matplotlib介绍(2D) Matplotlib 是 Python 2D-绘图领域使用最广泛的套件.它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式. pylab 是 matplo ...
随机推荐
- Python脚本连接数据库读取特定字段保存在文件中
从Script表中取出Description字段作为文件名,并按协议将脚本归位相同的文件夹,取TestScript字段的内容写入文件 import MySQLdb import sys import ...
- python学习笔记(二十四)继承与封装
继承(extends)就是把多个类中相同的成员给提取出来定义到一个独立的类中,然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些类容,这个关系就叫做继承. 实现继承的类称为子类,也叫派生类, ...
- kettle配置命名参数
bat 调度文件如下 cd D:/Program Files/kettle700/data-integrationKitchen.bat /rep repository /dir /TEST /job ...
- (转)VC串口小程序(用SerialPort类)
××××××××××××××××××××××××××××××××××××××××××××××××××××× 在MFC里面实现串口通讯有很多方式: 方案一:使用微软公司提供的 串口类,SerialPor ...
- vue——学习笔记
1.vue需要在dom加载完成之后实现实例化 eg: window.onload = function(){ new Vue({ el: '#editor', data: { input: '# he ...
- WebBrowser自动填充打开文件对话框
WebBrowser自动填充打开文件对话框 在使用WebBrowser编写自动表单填写软件的时候,不知道大家是否遇到国填写文件选择表单的情况.遇到这种情况的时候,无法直接队Html元素赋值,必须模 ...
- 003-spring boot项目的项目属性配置
一.application.properties文件. 1.项目的配置文件内容.配置了端口,超时连接时间, 2.控制器. 3.访问. 二.application.yml文件 1.application ...
- cdoj1633 去年春恨却来时,落花人独立,微雨燕双飞
地址:http://acm.uestc.edu.cn/#/problem/show/1633 题目: 去年春恨却来时,落花人独立,微雨燕双飞 Time Limit: 3000/1000MS (Java ...
- idea中 在接口中如何直接跳转到该接口的是实现类中?
例如,我想跳转到UserInfoDao 这个接口的实现类中,操作如下: 把鼠标放到这个接口UserInfoDao 上面,右键,选择 GO To ,然后选择 Implementations,就可以直接跳 ...
- NodeJS中间层搭建
前言 最近碰了个壁,公司开发的一个新项目里我大胆地提出要前后端完全分离,用JavaScript模板引擎.ajax.路由等技术替代繁琐的前后端混合的业务逻辑,项目进行到一半前辈提出来仅仅靠前端的力量无法 ...