Python之matplotlib基础

matplotlib是Python优秀的数据可视化第三方库

matplotlib库的效果可参考

http://matplotlib.org/gallery.html

matplotlib的使用 由各种可视化类构成,内部结构复杂,受matlab库启发,matplotlab.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式

import matplotlib.pyplot as plt

一个小示例

  1. import matplotlib.pyplot as plt
  2. plt.plot([2,3,4,5,1,6])
  3. plt.ylabel("Grade")
  4. plt.ylabel("number")
  5. plt.axis([-1,11,0,7])
  6. plt.savefig('test',dpi=600)#plt.savefig()将输出图形存储为文件,默认为png格式,可以通过dpi修改输出质量
  7. plt.show()

得到结果

绘制多图subplot

plot.subplot(nrows,ncols,plot_number)

在全局绘制区域中创建一个分区体系,并定位到一个子绘图区域

pyplot绘图区域示例

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. def f(t):
  4. return np.exp(-t) * np.cos(2 * np.pi * t)
  5. a = np.arange(0.0, 5.0, 0.02)
  6. plt.subplot(211)
  7. plt.plot(a, f(a))
  8. plt.subplot(2, 1, 2)
  9. plt.plot(a, np.cos(2 * np.pi * a), 'r--')
  10. plt.savefig('test',dpi=600)
  11. plt.show()

得到结果:

pyplot的plot()函数详解

  1. plt.plot(x,y,format_string,**kwargs)
  2. x:x轴数据,列表或数组,可选
  3. y:y轴数据,列表或数组
  4. format_string: 控制曲线的格式字符串,可迁
  5. **kwargs: 第二组或更多的(x,y,format_string)

注意:当绘制多条曲线时,各条曲线的x不能省略

format_string:控制曲线的格式字符串,可选。由颜色字符、风格字符和标记字符组成

颜色字符 说明 颜色字符 说明
'b' blue 'm' magenta洋红色
'g' green 'y' 黄色
'r' red 'k' 黑色
'c' cyan青绿色 'w' 白色
'#008000' RGB某颜色 '0.8' 灰度值字符串
风格字符 说明
'-' 实线
'--' 破折线
'-.' 点划线
':' 虚线
' ' 无线条
标记字符 说明 标记字符 说明 标记字符 说明
'.' 点标记 '1' 下花三角标记 'h' 竖六边形标记
',' 像素标记(极小点) '2' 上花三角标记 'H' 横六边形标记
'o' 实心圏标记 '3' 左花三角标记 '+' 十字形标记
'v' 倒三角标记 '4' 右花三角标记 'x' x标记
'^' 上三角标记 's' 实心方形标记 'D' 菱形标记
'>' 右三角标记 'p' 实心五角标记 'd' 瘦菱形标记
'<' 左三角标记 '*' 星形标记 ' '
  1. **kwargs: 第二组或更多(x,y,format_string)
  2. color: 控制颜色 color='green'
  3. linestyle:线条控制 linestyle='dashed'
  4. marker:标记风格,marker='o'
  5. markerfacecolor:标记颜色,markerfacecolor='blue'
  6. markersize:标记尺寸,markersize=20
  7. ...

pyplot的中文显示

pyplot并不默认支持中文显示,需要rcParams修改字体实现

全局设置中文字体

  1. import matplotlib
  2. import matplotlib.pyplot as plt
  3. matplotlib.rcParams['font.family']='SimHei'
  4. plt.plot([3,1,4,5,2])
  5. plt.ylabel('纵轴值')
  6. plt.savefig('test',dpi=600)
  7. plt.show()

结果如下:

rcParams的属性

属性 说明
'font.family' 用于显示字体的名字
'font.style' 字体风格,正常'normal'或斜体'italic'
'font.size' 字体大小,整数字号或者'large','x-small'

中文字体的种类

rcParams['font.family']

中文字体 说明
'SimHei' 中文黑体
'Kaiti' 中文楷体
'LiSu' 中文隶书
'FangSong' 中文仿宋
'YouYuan' 中文幼圆
STSong 华文宋体

示例:

  1. import matplotlib
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. matplotlib.rcParams['font.family']='STSong'
  5. matplotlib.rcParams['font.size']=20
  6. a = np.arange(0.0,5.0,0.02)
  7. plt.xlabel('纵轴: 振幅')
  8. plt.ylabel('横轴: 时间')
  9. plt.plot(a,np.cos(2*np.pi*a),'r--')
  10. plt.savefig('test',dpi=600)
  11. plt.show()

局部设置中文字体

在有中文输出的地方,增加一个属性:fontproperties

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. a = np.arange(0.0,5.0,0.02)
  4. plt.xlabel('纵轴: 振幅', fontproperties='SimHei',fontsize=20)
  5. plt.ylabel('横轴: 时间', fontproperties='SimHei',fontsize=20)
  6. plt.plot(a,np.cos(2*np.pi*a),'r--')
  7. plt.savefig('test',dpi=600)
  8. plt.show()



注意到,如果设置全局字体的话,那么坐标轴的字体也被改变,局部设置中文字体不改变坐标轴的字体。

pyplot的文本显示

pyplot的文本显示函数

函数 说明
plt.xlabel() 对x轴增加文本标签
plt.ylabel() 对y轴增加文本标签
plt.title() 对图形本整体增加文本标签
plt.text() 在任意位置增加文本
plt.annotate() 在图形中增加带箭头的注释

text函数示例

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. a = np.arange(0.0,5.0,0.02)
  4. plt.xlabel('纵轴: 振幅', fontproperties='SimHei', fontsize=20, color = 'green')
  5. plt.ylabel('横轴: 时间', fontproperties='SimHei', fontsize=20)
  6. plt.title(r'正弦波实例$y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
  7. plt.text(2,1,r'$\mu=100$',fontsize=15)
  8. plt.plot(a,np.cos(2*np.pi*a),'r--')
  9. plt.savefig('test',dpi=600)
  10. plt.show()

annotate函数示例

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. a = np.arange(0.0,5.0,0.02)
  4. plt.plot(a,np.cos(2*np.pi*a),'r--')
  5. plt.xlabel('纵轴: 振幅', fontproperties='SimHei', fontsize=20, color = 'green')
  6. plt.ylabel('横轴: 时间', fontproperties='SimHei', fontsize=20)
  7. plt.title(r'正弦波实例$y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
  8. plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),
  9. arrowprops=dict(facecolor='black',shrink=0.1,width=2))
  10. plt.axis([-1,6,-2,2])
  11. plt.grid()
  12. plt.savefig('test',dpi=600)
  13. plt.show()

http://www.mooc.cn/course/7848.html

python之matplotlib绘图基础的更多相关文章

  1. Python Matplotlib绘图基础

    Matplotlib绘图基础 1.Figure和Subplot import numpy as np import matplotlib.pyplot as plt #创建一个Figure fig = ...

  2. python 中matplotlib 绘图

    python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...

  3. python matplotlib 绘图基础

    在利用Python做数据分析时,探索数据以及结果展现上图表的应用是不可或缺的. 在Python中通常情况下都是用matplotlib模块进行图表制作. 先理下,matplotlib的结构原理: mat ...

  4. python基于matplotlib绘图

    import math import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import F ...

  5. python应用-matplotlib绘图

    详细内容参看:官网 测试数据: # 传入的参数 x=[1,2,3,4,5] squares=[1,4,9,16,25] 简单的绘图 import matplotlib.pyplot as plt de ...

  6. python中matplotlib绘图封装类之折线图、条状图、圆饼图

    DrawHelper.py封装类源码: import matplotlib import matplotlib.pyplot as plt import numpy as np class DrawH ...

  7. Matplotlib绘图基础

    import matplotlib.pyplot as plt import numpy as np #绘图流程 x=np.linspace(-1,1,100) y=x**2 plt.plot(x,y ...

  8. Python用matplotlib绘图网格线的设置

    一.X轴网格线的设置 import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['fo ...

  9. python数据分析使用matplotlib绘图

    matplotlib绘图 关注公众号"轻松学编程"了解更多. Series和DataFrame都有一个用于生成各类图表的plot方法.默认情况下,它们所生成的是线形图 %matpl ...

随机推荐

  1. python自动化开发-[第一章]-练习题

    1.使用while循环输入 1 2 3 4 5 6 8 9 10 i = 1 while i < 11: if i == 7: i += 1 continue print (i) i += 1 ...

  2. 详解Java反射机制

    反射是程序在运行状态下,动态的获取某个类的内部信息的一种操作.例如:类名,包名,所有属性的集合,所有方法的集合,构造方法的集合等.该操作发生在程序的运行时状态,所以编译器管不着有关反射的一些代码,通常 ...

  3. [瞎玩儿系列] 使用SQL实现Logistic回归

    本来想发在知乎专栏的,但是文章死活提交不了,我也是醉了,于是乎我就干脆提交到CNBLOGS了. 前言 前段时间我们介绍了Logistic的数学原理和C语言实现,而我呢?其实还是习惯使用Matlab进行 ...

  4. 微信小程序之获取当前位置经纬度以及地图显示

    最近刚开始接触微信小程序,在弄懂其结构以及相关接口之后,准备着手实现一个小程序,功能包括--获取用户当前位置的经纬度,在地图上查看位置,通过地图获取不同位置的经纬度. 微信小程序的主体部分包括: 新增 ...

  5. Spring框架入门

    技术分析之什么是Spring框架        1. Spring框架的概述        * Spring是一个开源框架        * Spring是于2003 年兴起的一个轻量级的Java开发 ...

  6. Docker - 从零开始到操作

    从零开始 介绍Docker的基本概念和命令,并给出简单使用示例和参考信息. Docker - 基础讲义 http://www.cnblogs.com/anliven/p/6281373.html Do ...

  7. JavaScript ,Python,java,Go系列算法之选择排序

    常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等. 用一张图概括:   选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) ...

  8. js获取一组不重复的随机数的方法

    一.基本思路: 建立一个数组存放所有可以取到的值,每次从该数组中随机取走一个,放到新的数组中,直到完成. 二.实现方法 1.方法一: (1)创建一个数组arr,数组元素为所有可能出现元素的集合: (2 ...

  9. NancyFx 2.0的开源框架的使用-Basic

    这是NancyFx开源框架中的Basic认证,学习一下! 首先当然是新建一个空的Web,BasicDemo 继续在项目中添加Nuget包,记得安装的Nuget包是最新的预发行版 Nancy Nancy ...

  10. spoj 694. Distinct Substrings 后缀数组求不同子串的个数

    题目链接:http://www.spoj.com/problems/DISUBSTR/ 思路: 每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数.如果所有的后缀按照su ...