Python可视化学习(2):Matplotlib快速绘图基础
Matplotlib将大部分的绘图对象都封装成为对象,故理论上所有的图表元素(如Line2D, Text,Label等)都是对象,都可以将其在图表中提取出来并配置实例的属性。同时,Matplotlib提供了一套类似于Matlab的API接口,可以让我们能够实现快速绘图而无需进行相对于复杂的对象操作。快速绘图适合于简单的绘图程序,而面向对象则适合于复杂的大型程序。
1. 采用matplotlib.pyplot接口进行绘图,返回的是一个Line2D对象(每一条线返回一个Line2D对象,且不管你的图上有多少线,都是返回一个列表)
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%pylab
%matplotlib inline
#创建示例用的x轴数据
x=np.linspace(-2,2,100)
#定义需要用到的计算函数
def func(inx):
return (-np.exp(-x))*np.sin(np.pi*x)
line,=plt.plot(x,func(x))#只返回第一个对象

也可以给plt.plot()函数传递多个序列(元组或列表),每两个序列是一个X,Y向量对,就可以在一个图里存在多条曲线。
line1,line2=plt.plot(x,-x*2,x,np.sin(x**2*np.pi))#返回两个对象,分别赋值在line1和line2上
设置曲线的属性:
- 通过plot()函数中的关键字参数进行设置;
- 通过Line2D的Setter方法(set_*)进行设置;
- 通过pyplot.setp()进行批量设置;

#通过Line2D的Setter方法(set_*)进行设置;
#主要是通过返回的Line2D对象进行设置,这里的设置非常多,可以参考手册内容
line1,line2=plt.plot(x,-x*2,x,np.sin(x**2*np.pi))
#设置line1的属性
line1.set_linewidth(2)
line1.set_color('b')
line1.set_linestyle("--")
#设置line2的属性
line2.set_color('k')
line2.set_linestyle('-')

#通过pyplot.setp()进行批量设置;
line1,line2=plt.plot(x,-x*2,x,np.sin(x**2*np.pi))
plt.setp(line1,color='r',linewidth=2)#采用关键字参数
plt.setp(line2,"color",'k','linewidth',2,'linestyle','-.')#采用变量形式,这时候属性必须用字符串形式成对表示(数值除外)

###-----------------------------------------------------------------------------------------------------------
##其它的一些常用设置
line1,=plt.plot(x,-x**2,label=r"$-x^2$")
line2,=plt.plot(x,np.sin(2*x**2*np.pi),label=r'$\sin(2\pi\dotx^2)$')
#设置的标记
plt.annotate(unicode("Original",encoding="utf-8"),xy=(0,0),
xytext=(0.5,1.5),
arrowprops=dict(facecolor='red',arrowstyle='-|>')
)
#设置图标的标题:
plt.title("Matplotlib Learning")
#设置x和y轴的名称
plt.xlabel("x value")
plt.ylabel("result value")
#设置x轴和y轴的范围:xlim和ylim
plt.xlim(-2.0,1)
plt.ylim(-2,2)
#设置图例
plt.legend(loc='upper left')
plt.show()

2. 处理多个Axes——子图
MATLAB和pyplot都有当前图和当前axe的概念。所有的作图命令都作用在当前axe。
- 利用plt.subplot(nrows,ncols,char_num)快速创建子图
这里有一点要注意,当选定了子图后,那么这个子图就是当前选定子图,后续所有操作都是在这个子图上,可以通过gca()获取当前的axe。
ax=plt.subplot(221)#创建2*2个子图,并选定第一个(一般选定的顺序是从左到右,从上到下)
#print type(ax),打印显示器为AxesSubplot对象
#<class 'matplotlib.axes._subplots.AxesSubplot'>
ax.plot(np.arange(0,10),np.arange(0,10))
plt.plot(np.arange(0,10),-np.arange(0,10),'k--')#两种操作等价
#------------------------------------------------
ax2=plt.subplot(222,axisbg='y')#选取第一行,第二个axe,并设置背景颜色为黄色
ax2.plot(np.arange(0,10),np.arange(0,10))
plt.plot(np.arange(0,10),-np.arange(0,10),'y-')
#设置其y轴的值不显示,x轴只显示[0,5,9]
plt.yticks([])
plt.xticks([0,5,9])
#------------------------------------------------
ax3=plt.subplot(212)#重新建立分区,并选定第二个,这时初始的分区方法被覆盖。
ax3.plot(x,func(x),label="new value")
ax3.legend(loc='best')

Python可视化学习(2):Matplotlib快速绘图基础的更多相关文章
- Python可视化学习(1):Matplotlib的配置
Matplotlib是一个优秀的可视化库,它提供了丰富的接口,让Python的可视化落地显得非常容易上手.本系列是本人学习python可视化的学习笔记,主要用于监督自己的学习进度,同时也希望和相关的博 ...
- python实战学习之matplotlib绘图续
学习完matplotlib绘图可以设置的属性,还需要学习一下除了折线图以外其他类型的图如直方图,条形图,散点图等,matplotlib还支持更多的图,具体细节可以参考官方文档:https://matp ...
- 使用matplotlib快速绘图
matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表.让我们先来看一个简单的例子: # -*- coding: utf-8 -*- import num ...
- python实战学习之matplotlib绘图
matplotlib 是最流行的Python底层绘图库,主要做数据可视化图表 可以将数据可视化,能够更直观的呈现数据 matplotlib绘图基本要点 首先实现一个简单的绘图 # 导入pyplot f ...
- python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法
最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...
- matplotlib常见绘图基础代码小结:折线图、散点图、条形图、直方图、饼图
一.折线图 二.散点图 三.条形图 四.直方图 五.饼图 一.折线图折线图用于显示随时间或有序类别的变化趋势 from matplotlib import pyplot as plt x = rang ...
- Python爬虫学习==>第九章:正则表达式基础
学习目的: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特点字符.及这些特点字符组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 正式步骤 Step1 ...
- PyQt(Python+Qt)学习随笔:快速理解Qt 中Action是什么
一.引言 Qt中Action这个词接触很久了,一直以来没去学习,今天终于准备学习了,查了些资料,初步总结为: Action为界面操作的抽象,应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命 ...
- python爬虫学习笔记(二)——基础篇之爬虫基本原理
1.什么是爬虫? 请求网站并提取数据的自动化程序 2.爬虫基本流程 2.1发起请求 通过HTTP库向目标站点发起请求,即发起一个Request,请求可以包含额外的headers等信息,等待服务器响应: ...
随机推荐
- 【UWP】FFmpeg库的编译
本文是关于windows8.1/windows10通用应用下编译ffmpeg的一些需要注意的地方,针对最新的msys2而写,都是我在实际操作中遇到的,但是网上没有提到的.如果大家遇到什么问题或是在之前 ...
- 【2017年新篇章】 .NET 面试题汇总(一)
开篇 本次给大家介绍的是我收集以及自己个人保存一些.NET面试题 简介 此次包含的不止是.NET知识,也包含少许前端知识以及.net面试时所涉及的种种考点,希望能给找工作的同学们哪怕一点点帮助. 古人 ...
- 使用splice实现高效的代理服务器
很多网络应用场景下, 当原设备与目标设备无法直接建立连接时,这时就需要一台代理服务器进行中转.代理服务器只需要将来自源设备的报文 原封不动的转发给目标设备,而并不需要知道报文的具体内容.在这种情况下, ...
- WIn7下Ubuntu 14.04 安装
1. 在Windows下下载Ubuntu14.04的ISO镜像,解压 2. 打开wubi.exe,填写用户名,密码等相关信息,在这里需要注意的是,磁盘空间最好选到最大(30G),执行安装 3. 按照提 ...
- p1217晚餐(简单的dijkstra)
题目: 输入: 1000 5 61 2 3002 4 2003 4 6003 4 8005 3 1002 5 650 输出: 4 这道题呢,其实就是用邻接矩阵将每条边耗费的体力存起来,然后用dijks ...
- QQ微信刷屏助手 FlashScreenAssist 1.2发布
主要功能 文字刷屏 图片刷屏 简易教程 文字刷屏 打开软件之后输入要刷屏的文字,点击[开始],然后点一下微信或者QQ的输入框,就会开始刷屏了,注意[时间间隔]不要调太小,越小越快. 要注意的是.必须在 ...
- Hibernate一对一主键映射
Hibernate一对一主键映射 ------------------------------ -- ...
- 3步轻松搭建Unity3d安卓开发环境
之前写过一个Untiy3d安卓开发环境的配置教程,那是我第一次学习配置安卓开发环境,互联网上的信息良莠不齐,自己当时也不懂,配置步骤麻烦的一塌糊涂,现在见的多了,也会的多了,配置安卓开发环境变得非常容 ...
- Spring总结_02_Spring概述
一.概念准备 1.应用程序:是能完成我们所需要功能的成品,比如购物网站.OA系统. 2.框架:是能完成一定功能的半成品,比如我们可以使用框架进行购物网站开发:框架做一部分功能,我们自己做一部分功能,这 ...
- cocos studio UI 1.6.0.0 修改导出项目路径
因为cocos studio UI 1.6.0.0版本没有自动修改默认导出路径的功能,新建项目后默认导出的路径还是上一个项目的,每次导出都要重新设置路径很麻烦.于是考虑是否可以找到默认配置文件,终于还 ...