matplotlib基础教程(1)

el/2024/7/17 21:13:25

前言:matplotlib是一个python的第三方库,里面的pyplot可以用来作图。下面来学习一下如何使用它的资源。

一、使用前

首先在python中使用任何第三方库时,都必须先将其引入。即:

import matplotlib.pyplot as plt

或者:

from matplotlib import pyplot as plt

二、用法

1.建立空白图

fig = plt.figure()

得到如下图的效果: (指定画板,画板为空)

figure1

也可以指定所建立图的大小

fig = plt.figure(figsize=(4,2))

效果如下: (指定画板,画板为空)

figure2 
当然我们也可以建立一个包含多个子图的图,使用语句:

plt.figure(figsize=(12,6))
plt.subplot(231)
plt.subplot(232)
plt.subplot(233)
plt.subplot(234)
plt.subplot(235)
plt.subplot(236)
plt.show()

注:figsize参数定义画布的大小,和界面的划分没有关系。

 subplot函数将画布大小分成几个部分,在subplot函数中参数‘231’表示2(row)x3(colu),即将画布分成2x3,两行三列的6块区域,1表示选择图形输出的区域在第一块,图形输出区域参数必须在x范围

效果如下:

figure3

可以看到图中的x,y轴坐标都是从0到1,当然有时候我们需要其他的坐标起始值。 
此时可以使用语句指定:

plt.axis([-1, 1, -1, 1])

注:前两个参数-1和1表示X轴的范围,后两个参数表示Y轴的范围。

效果如下:

figure5

注意第一个子图。

plt.title('表的标题')

2.向空白图中添加内容,想你所想,画你所想

首先给出一组数据:

x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]
A.画散点图*
plt.scatter(x, y, color='r', marker='+')
plt.show()

效果如下:

scatter

这里的参数意义:

  1. x为横坐标向量,y为纵坐标向量,x,y的长度必须一致。
  2. 控制颜色:color为散点的颜色标志,常用color的表示如下:

    b---blue   c---cyan  g---green    k----black
    m---magenta r---red  w---white    y----yellow

    有四种表示颜色的方式:

    • 用全名
    • 16进制,如:#FF00FF
    • 灰度强度,如:‘0.7’
  3. 控制标记风格:marker为散点的标记,标记风格有多种:

    .  Point marker
    ,  Pixel marker
    o  Circle marker
    v  Triangle down marker 
    ^  Triangle up marker 
    <  Triangle left marker 
    >  Triangle right marker 
    1  Tripod down marker
    2  Tripod up marker
    3  Tripod left marker
    4  Tripod right marker
    s  Square marker
    p  Pentagon marker
    *  Star marker
    h  Hexagon marker
    H  Rotated hexagon D Diamond marker
    d  Thin diamond marker
    | Vertical line (vlinesymbol) marker
    _  Horizontal line (hline symbol) marker
    +  Plus marker
    x  Cross (x) marker
B.函数图(折线图)

数据还是上面的。

fig = plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.plot(x, y, color='r', linestyle='-')
plt.subplot(122)
plt.plot(x, y, color='r', linestyle='--')
plt.show()

效果如下: 
plot

这里有一个新的参数linestyle,控制的是线型的格式:符号和线型之间的对应关系

-      实线
--     短线
-.     短点相间线
:     虚点线

另外除了给出数据画图之外,我们也可以利用函数表达式进行画图,例如:y=sin(x)

from math import *
from numpy import *
x = arange(-math.pi, math.pi, 0.01)
y = [sin(xx) for xx in x]
plt.figure()
plt.plot(x, y, color='r', linestyle='-.')
plt.show()

效果如下:

sin(x)

C.扇形图

示例:

import matplotlib.pyplot as plt
y = [2.3, 3.4, 1.2, 6.6, 7.0]
plt.figure()
plt.pie(y)
plt.title('PIE')
plt.show()

效果如下:

pie

D.柱状图bar

示例:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]plt.figure()
plt.bar(x, y)
plt.title("bar")
plt.show()
  • 效果如下:

bar

E.二维图形(等高线,本地图片等)
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.image as mpimg
# 2D datadelta = 0.025
x = y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z = Y**2 + X**2
plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.contour(X, Y, Z)
plt.colorbar()
plt.title("contour")# read imageimg=mpimg.imread('marvin.jpg')plt.subplot(122)
plt.imshow(img)
plt.title("imshow")
plt.show()
#plt.savefig("matplot_sample.jpg")

效果图:

2D

F.对所画图进行补充
__author__ = 'wenbaoli'import matplotlib.pyplot as plt
from math import *
from numpy import *
x = arange(-math.pi, math.pi, 0.01)
y = [sin(xx) for xx in x]
plt.figure()
plt.plot(x, y, color='r', linestyle='-')
plt.xlabel(u'X')#fill the meaning of X axis
plt.ylabel(u'Sin(X)')#fill the meaning of Y axis
plt.title(u'sin(x)')#add the title of the figureplt.show()

效果图: 
others

三、结束语

尽管上述例子给出了基本的画图方法,但是其中的函数还有很多其他的用法(参数可能不只如此),因此本文只能算做一个基本入门。如果想详细的学习,请看这篇博客:http://blog.csdn.net/wizardforcel/article/details/54407212




http://www.ngui.cc/el/5557037.html

相关文章

深度学习中常见分布-正态分布和伽玛分布

正态分布&#xff08;Normal distribution&#xff09;又名高斯分布&#xff08;Gaussian distribution&#xff09;&#xff0c;是一个在数学、物理及工程等领域都非常重要的概率分布&#xff0c;在统计学的许多方面有着重大的影响力。 若随机变量X服从一个数学期望为μ、标准…

tensorflow:批标准化(Bacth Normalization,BN)

批标准化&#xff08;Bactch Normalization&#xff0c;BN&#xff09;是为了克服神经网络加深导致难以训练而诞生的&#xff0c;随着神经网络深度加深&#xff0c;训练起来就会越来越困难&#xff0c;收敛速度回很慢&#xff0c;常常会导致梯度弥散问题(Vanishing Gradient Pr…

池化函数(Pooling Function)

1. 池化(Pooling)概念 在神经网络中&#xff0c;池化函数(Pooling Function)一般在卷积函数的下一层。在经过卷积层提取特征之后&#xff0c;得到的特征图代表了 比 像素 更高级的特征&#xff0c;已经可以交给 分类器 进行训练分类了。但是我们 每一组卷积核 都生成 一副…

深度学习(图像处理): A neural algorithm of artistic style算法详解

Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “A neural algorithm of artistic style.” arXiv preprint arXiv:1508.06576 (2015). 下面这篇发表于CVPR16&#xff0c;内容类似&#xff0c;排版更便于阅读。 Gatys, Leon A., Alexander S. Ecker, and Matthias…

深度学习(图像处理)A Neural Algorithm of Artistic Style 图像风格转换 - keras简化版实现

前言 深度学习是最近比较热的词语。说到深度学习的应用&#xff0c;第一个想到的就是Prisma App的图像风格转换。既然感兴趣就直接开始干&#xff0c;读了论文&#xff0c;一知半解&#xff1b;看了别人的源码&#xff0c;才算大概了解的具体的实现&#xff0c;也惊叹别人的奇思…

统计学习:正则化与交叉验证

1. 正则化 模型选择的经典方法是正则化&#xff08;regularization&#xff09;。正规化是结构风险最小化策略的实现&#xff0c;是在经验风险上加一个正则化项&#xff08;regularizer&#xff09;或罚项&#xff08;penalty term&#xff09;。正则化一般是模型复杂度的单调递…

Neo4j数据库基础

1、Neo4j简介 可能很多同学之前没有接触过图数据库&#xff0c;Neo4j就是一个图数据库&#xff0c;首先对Neo4j做一个初步的介绍&#xff1a; Neo4j是一个——面向网络的数据库——基于磁盘的、具备完全的事务特性的Java持久化引擎&#xff0c;但是它将结构化数据存储在网络上…

ipython开发工具Jupyter Notebook安装

第一步&#xff1a;安装ipython,安装完成后输入ipython&#xff0c;如下图&#xff0c;输入exit可退出 pip install ipython 第二步&#xff1a;安装jupyter pip install jupyter 第三步&#xff1a;配置环境&#xff0c;通过远程方式访问jupyter notebook jupyter not…

ubuntu下neo4j的安装

环境&#xff1a; ubuntu14.04 neo4j-enterprise-1.9.4-unix.tar.gz neo4j-enterprise-2.3.0-M02同样可行 单机&#xff1a; 1、下载neo4j并解压 地址&#xff1a;http://neo4j.com/download/other-releases/ wget -O - https://debian.neo4j.org/neotechnology.gpg.ke…

Neo4j启动失败/usr/share/neo4j/bin/neo4j: line 411: /var/run/neo4j/neo4j.pid: No such file or directory

启动Neo4j报错如下&#xff1a; rootyumh: neo4j restart Neo4j not running Starting Neo4j. WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual./usr/share/neo4j/bin/neo4j: 行 411: /var/run/neo4j/neo4j.pid: 没有那个文件或…