一、导入需要的模块

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.stats as stats

二、画基本图形

1、plot画图

y=np.random.randn()
plt.plot(y,'b-')
plt.xlabel('x')
plt.ylabel('y')
plt.title(u'title')
plt.show()

可选参数如下所示:

也可以通过更改参数来改变画图效果

x=np.cumsum(np.random.rand())
plt.plot(y,label='line label',color='r',linestyle='-',marker='o')
plt.show()

可选的参数有

2、scatter画图,使用两个相同大小的一维数组产生。

例如:数据服从正态分布,相关系数是0.5

z=np.random.randn(,)
z[:,]=0.5*z[:,]+np.sqrt(0.5)*z[:,]
x=z[:,];
y=z[:,];
plt.scatter(x,y);
plt.show()

参数也是可以修改的例如:

z=np.random.randn(,)
z[:,]=0.5*z[:,]+np.sqrt(0.5)*z[:,]
x=z[:,];
y=z[:,];
plt.scatter(x,y,marker='s',c='r');
plt.show()

3、画条形图bar,需要两个一位数组,第一个是横坐标,每个条形图的开始位置;纵坐标是条形图的高度

y=np.random.rand();
x=np.arange();
plt.bar(x,y)
plt.show()

修改他的显示属性,可以使用一个颜色数组来指定每个条形图的颜色。

y=np.random.rand(5);
x=np.arange(5);
colors=['#FF0000','#FFFF00','#00FF00','#00FFFF','#0000FF']
plt.bar(x,y,width=0.5,color=colors,edgecolor='#000000',linewidth=5)
plt.show()

4、pie图表,使用一个一维数组来表示,不要求累加和是1,可以使人以大小的正数。

x=np.arange(,);
labels=['label1','label2','label3','label4','label5','label6','label7']
plt.pie(x,labels=labels)
plt.show()

5、直方图hist,需要一个数组,bins参数表示将数据分成几组,默认是10组。

x=np.random.randn();
plt.hist(x,bins=);
plt.show()

如果想要生成累计直方图需要使参数cumulative为true

x=np.random.randn(1000);
plt.hist(x,bins=20,cumulative=True);
plt.show()

6、在同一个图上画出多张图表,需要首先使用figure()函数生成一个画板,画子图时需要使用sp=add_subplot(m,n,p)来表示子图。m表示行,n表示列,p表示第几个图。

返回的是子图的句柄用于设置一些参数。最后要想显示出来需要使用draw()函数,将这些子图画在画板上,然后用show()函数显示出来。

fig = plt.figure()
ax = fig.add_subplot(, , )
y = np.random.randn()
plt.plot(y);
ax.set_title('') y = np.random.rand()
x = np.arange()
ax = fig.add_subplot(, , )
plt.bar(x, y)
ax.set_title(''); y = np.random.rand()
y = y / np.sum(y)
y[y < .] = .
ax = fig.add_subplot(, , )
plt.pie(y)
ax.set_title('') plt.draw()
plt.show()

7、3D画图

(1)画线,使用plot,需要Axed3D(fig)来画出3D轴线,

import copy
from mpl_toolkits.mplot3d import Axes3D
x=np.linspace(,*np.pi,);
z=copy.copy(x)
x=np.cos(z)
y=np.sin(z);
fig=plt.figure()
ax = Axes3D(fig)
ax.plot(x,y,zs=z)
plt.xlabel('x')
plt.ylabel('y')
ax.view_init(,)
plt.draw()
plt.show()

8、保存图像,使用savefig(’filename.ext’) ,其中ext支持png, pdf, ps, eps or svg格式。

import copy
from mpl_toolkits.mplot3d import Axes3D
x=np.linspace(,*np.pi,);
z=copy.copy(x)
x=np.cos(z)
y=np.sin(z);
fig=plt.figure()
ax = Axes3D(fig)
ax.plot(x,y,zs=z)
plt.xlabel('x')
plt.ylabel('y')
ax.view_init(,)
plt.savefig('3dplot.png')
plt.draw()
plt.show()

读书笔记5基于matplotlib画图的更多相关文章

  1. 《软件测试自动化之道》读书笔记 之 基于反射的UI测试

    <软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序  启动待测程序  设置窗体的属性  获取窗体的属性  设置控件的属性  ...

  2. 《软件测试自动化之道》读书笔记 之 基于Windows的UI测试

    <软件测试自动化之道>读书笔记 之 基于Windows的UI测试 2014-09-25 测试自动化程序的任务待测程序测试程序  启动待测程序  获得待测程序主窗体的句柄  获得有名字控件的 ...

  3. 《Essential C++》读书笔记 之 基于对象编程风格

    <Essential C++>读书笔记 之 基于对象编程风格 2014-07-13 4.1 如何实现一个class 4.2 什么是Constructors(构造函数)和Destructor ...

  4. 图论——读书笔记(基于BFS广度优先算法的广度优先树)

    广度优先树 对于一个图G=(V,E)在跑过BFS算法的过程中会创建一棵广度优先树. 形式化一点的表示该广度 优先树的形成过程是这样的: 对于图G=(V,E)是有向图或是无向图, 和图中的源结点s, 我 ...

  5. 读书笔记-《基于Oracle的SQL优化》-第一章-3

    优化器: 1.优化器的模式: 用于决定在Oracle中解析目标SQL时所用优化器的类型,以及决定当使用CBO时计算成本值的侧重点.这里的“侧重点”是指当使用CBO来计算目标SQL各条执行路径的成本值时 ...

  6. 《Essential C++》读书笔记 之 目录导航

    <Essential C++>读书笔记 之 目录导航 2014-07-06 第一章:<Essential C++>读书笔记 之 C++编程基础 第二章:<Essentia ...

  7. 《神经网络算法与实现-基于Java语言》的读书笔记

    文章提纲 全书总评 读书笔记 C1.初识神经网络 C2.神经网络是如何学习的 C3.有监督学习(运用感知机) C4.无监督学习(自组织映射) Rreferences(参考文献) 全书总评 书本印刷质量 ...

  8. 【读书笔记】《基于UG NX系统的二次开发》笔记

    我有几本二次开发的书,但是从头到尾读下来的却没有几本.有时候遇到困难发帖求助,好不容易得到答案.后来却发现在书上的前几章就有详细介绍.读书笔记不仅是一种记录,更是一种督促自己读书的方法.还有一个原因是 ...

  9. [读书笔记] Python 数据分析 (八)画图和数据可视化

    ipython3 --pyplot pyplot: matplotlib 画图的交互使用环境

随机推荐

  1. Linux中如何开启8080端口供外界访问

    装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理.于是请教百度大神,在费一番周折后,总结步骤如下: 1.修改文件/etc/sysconfig/iptables [root@bogon ~ ...

  2. python多线程概念

    转自:http://www.cnblogs.com/fnng/p/3489321.html 在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制( ...

  3. UE自动将关键字首字母大写怎么办

    对于某些关键字,UE会自动将首字母大写. 只要选中这些文字,右键选择"格式",转为小写字母即可.

  4. Discuz常见大问题-如何允许用户插入视频-如何自己在页面中插入视频

    从视频的下面分享中获取html代码 然后粘贴到你创建页面的指定位置(注意从优酷复制的视频宽度和高度可能比较小,你可以自己调整,或者占据100%) 最终的实现效果

  5. STL - 容器 - Array

    Array是C++ 11给STL新增加的容器 ArrayTest.cpp #include <array> #include <algorithm> #include < ...

  6. 简单通俗讲解DOM

    在开始之前先说一点,DOM是非常容易理解的,但是大家说的太官方,让人很是难于理解,我们就用非常简单的语言翻译一遍.加深对DOM的理解,从而对它有一个全面的认识. 什么是DOM DOM的全称是Docum ...

  7. 微信小程序-配置解答

    微信小程序启动页面: Pages:  index / logs 有 index和logs的页面,每个页面中都有独立的js逻辑,wxml负责页面内容,wxss负责样式. utils app.js app ...

  8. HTML一(简介)

    什么是 HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (ma ...

  9. 算法笔记_174:历届试题 地宫取宝(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明 ...

  10. 解决运行Maven是报错:No goals have been specified for this build

    pom.xml文件<build>标签后面加上<defaultGoal>compile</defaultGoal>即可