1 二维图像

1.1 二维曲线

plot(x, y, ls="-", lw=1.5, label=None)
  • x, y:横坐标和纵坐标
  • ls:颜色、点标记、线型列表,如 ls='r-' 表示红色实线、形点,ls='g.' 表示绿色散点
  • lw:线宽度
  • label:线标签
plot(x, y, color, marker, linestyle)
  • x, y:横坐标和纵坐标
  • color:颜色,取值:b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
  • marker:标记形状,取值:. , o v ^ < > 1 2 3 4 s p * h H + x D d | _
  • linestyle:线型,取值:- -- -. :
import numpy as np
import matplotlib.pyplot as plt x=np.arange(0,12,0.3)
y1=np.sin(x)
y2=np.cos(x) plt.figure() #新建一个图像窗口
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示标题中中文
plt.rcParams['axes.unicode_minus'] = False #正常显示坐标轴中中文 plt.subplot(1,2,1) #使用第1个窗格
plt.plot(x,y1,'r*-') #绘图
#plt.plot(x,y1,color='r',marker='*',linestyle='-') #和上面等价
plt.title("正弦曲线") #标题
plt.xlabel('x轴') #x轴命名
plt.ylabel('y轴') #y轴命名
plt.grid() #添加网格
plt.legend(['sinx']) #显示图例 plt.subplot(1,2,2) #使用第2个窗格
plt.plot(x,y1,'r*-',label='sinx') #绘制正弦图像
plt.plot(x,y2,'g.--',label='cosx') #绘制余弦图像
plt.title('正弦曲线、余弦曲线') #标题
plt.legend() #显示图例

1.2 二维散点图

scatter(x, y, s=20, c='b', marker='o', cmap, alpha)
  • x, y:横坐标和纵坐标
  • s:点大小
  • c:点颜色,取值:b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
  • marker:点标记,取值:. , o v ^ < > 1 2 3 4 s p * h H + x D d | _
  • cmap:颜色图谱
  • alpha:透明度,取值:0~1,超过1时当1算,低于1时当0算
  • linewidths:边框宽度
import numpy as np
import matplotlib.pyplot as plt size=100
x=np.random.uniform(size=size)
y=np.random.uniform(size=size)
s=np.random.uniform(5,400,size=size) #点大小
c=np.random.uniform(size=size) #点颜色
lw=np.random.uniform(1,4,size=size) #边框宽度 plt.figure() #新建一个图像窗口 plt.subplot(1,2,1) #使用第1个窗格
plt.scatter(x,y,s=s,c=c,alpha=0.5,linewidths=lw,edgecolors='m') #绘制散点图 plt.subplot(1,2,2) #使用第2个窗格
plt.scatter(x,y,s=s,c=c,cmap='rainbow',alpha=0.5) #绘制散点图

cmap 为颜色图谱,取值如下: (见cmap设置颜色的参数

1.3 图像修饰

  • figure( num, figsize, dpi ):新建一个空白图像窗口,num为窗口名字,figsize为窗口尺寸,dpi为分辨率
  • title( ):标题
  • xlabel( ):x轴标签
  • ylabel( ):y轴标签
  • xlim( xmin, xmax ):x轴图像显示范围
  • ylim( ymin, ymax ):y轴图像显示范围
  • axis( xmin, xmax, ymin, ymax ):设置x轴和y轴显示范围
  • xticks( ticks, labels ):x轴刻度标记,ticks为需要标记的坐标,labels为对应ticks的标签
  • yticks( ):y轴刻度标记,ticks为需要标记的坐标,labels为对应ticks的标签
  • vlines( x, ymin, ymax, colors='k', linestyles='solid', label='' ):绘制垂直分割线
  • hlines( y, xmin, xmax, colors='k', linestyles='solid', label='' ):绘制水平分割线
  • text( x, y, s ):说明文字,(x,y)为文字显示位置,s为文字内容
  • subplot( rows, cols, num ):多窗格绘图,rows表示行数,cols表示列数,num表示窗格序号
  • legend( labels ):显示图例,labels为各曲线的图例标签列表,若在plot()中已给标签,这里可以省略参数
  • grid():显示网格
  • show( ):显示图像
  • savefig( name, dpi ):保存图片,默认以png格式保存,dpi为分辨率
  • gca( ):获取坐标轴(axis)对象

这里仅介绍 xticks() 的用法:

import numpy as np
import matplotlib.pyplot as plt x=np.arange(0,15.7,0.1)
y=np.sin(x) plt.figure() #新建一个图像窗口
plt.plot(x,y,'r.') #绘图 ticks=np.arange(0,6)*np.pi
labels=['0π','1π','2π','3π','4π','5π']
plt.xticks(ticks,labels) #x轴示数标记
plt.grid() #显示网格

1.4 坐标轴控制

1.4.1 坐标轴刻度间隔

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator x=np.arange(0,15.7,0.1)
y=np.sin(x) plt.figure() #新建一个图像窗口
plt.plot(x,y,'r.') #绘图 ax=plt.gca() #获取坐标轴(axis)对象
ax.xaxis.set_major_locator(MultipleLocator(3.14)) #设置x轴示数间隔
plt.grid() #显示网格

可以看到,x 轴刻度为 3.14

1.4.2 坐标轴刻度格式

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FormatStrFormatter x=np.arange(0,15.7,0.1)
y=np.sin(x) plt.figure() #新建一个图像窗口
plt.plot(x,y,'r.') #绘图 ax=plt.gca() #获取坐标轴(axis)对象
ax.yaxis.set_major_formatter(FormatStrFormatter('%.1f')) #设置y轴示数格式
plt.grid()

可以看到,y 轴刻度只显示1位小数。此方法也可以避免坐标轴示数有时候自动变成+e**的情况发生

2 三维图像

2.1 三维坐标轴对象(Axes3D

在绘制三维图像时,需要先创建三维坐标轴对象 Axes3D ,创建方法主要有以下2种:

方法一

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #虽然没有明确调用 Axes3D,也不能省略,否则会报错 fig=plt.figure() #创建一个图像窗口
ax=plt.axes(projection='3d') #创建三维坐标轴对象

方法二

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D fig=plt.figure() #创建一个图像窗口
ax=Axes3D(fig) #创建三维坐标轴对象

运行代码,可以看到创建了一个空的三维图像窗口,如下:

多窗格绘图

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #虽然没有明确调用 Axes3D,也不能省略,否则会报错 fig=plt.figure() #创建一个图像窗口
ax=fig.add_subplot(rows,cols,num,projection='3d') #添加一个三维子图

2.2 三维曲线

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D t=np.linspace(0,20,70) #参数,生成[0,20]之间70个点
x=np.sin(t)
y=np.cos(t)
z=2*t fig=plt.figure() #创建一个图像窗口
ax=Axes3D(fig) #创建三维坐标轴对象 ax.plot(x,y,z,'r*-') #绘制3维曲线

2.3 三维散点图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D size=150 #点个数
x=np.random.randint(0,30,size)
y=np.random.randint(0,30,size)
z=np.random.randint(0,30,size) fig=plt.figure() #创建一个图像窗口
ax=Axes3D(fig) #创建三维坐标轴对象 s=np.random.randint(0,200,size) #点大小
c=np.random.randint(0,256,size) #点颜色
ax.scatter(x,y,z,s=s,c=c,alpha=0.8) #绘制3维散点图

2.4 三维曲面

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D x=np.linspace(0,10,50)
y=np.linspace(0,9,45)
X,Y=np.meshgrid(x,y) #生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50)
Z=np.sin(X)+np.cos(Y) #每个格点对应的函数值,维度:(45,50) fig=plt.figure() #创建一个图像窗口 ax=fig.add_subplot(1,2,1,projection='3d') #添加一个三维子图
ax.plot_surface(X,Y,Z,cmap='hot') #绘制三维曲面,cmap为颜色图谱 ax=fig.add_subplot(1,2,2,projection='3d') #添加一个三维子图
ax.plot_surface(X,Y,Z,cmap='rainbow') #绘制三维曲面,cmap为颜色图谱

X,Y=np.meshgrid(x,y) 函数的作用是生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50) ,变量空间如下:

​ 声明:本文转自python绘图总结

python绘图总结的更多相关文章

  1. python绘图:matplotlib和pandas的应用

    在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库.1.matplotlib库的应用准备工作如下:打开ipython,输 ...

  2. Python绘图工具Plotly的简单使用

    1.Plotly被称为史上最好的绘图工具之一,为了更好的展示金融数据的复杂性. Plotly的官方网站为:https://plot.ly/ python量化的关键是金融数据可视化,无论是传统的K线图, ...

  3. 【python笔记】使用matplotlib,pylab进行python绘图

    一提到python绘图,matplotlib是不得不提的python最著名的绘图库,它里面包含了类似matlab的一整套绘图的API.因此,作为想要学习python绘图的童鞋们就得在自己的python ...

  4. python绘图之seaborn 笔记

    前段时间学习了梁斌老师的数据分析(升级版)第三讲<探索性数据分析及数据可视化>,由于之前一直比较忙没有来得及总结,趁今天是周末有点闲暇时间,整理一下笔记: 什么是seaborn Seabo ...

  5. python绘图 matplotlib教程

    mark一个很好的python绘图教程 https://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/

  6. python绘图入门

    python绘图入门 学习了:https://zhuanlan.zhihu.com/p/34200452 API:https://matplotlib.org/api/pyplot_api.html ...

  7. Python 绘图 cookbook

    目录 python绘图常见bug matplotlib包加载 解决中文绘图乱码解决方法 解决python中用matplotlib画多幅图时出现图形部分重叠的问题 python绘图常见bug matpl ...

  8. 分形、分形几何、数据可视化、Python绘图

    本系列采用turtle.matplotlib.numpy这三个Python工具,以分形与计算机图像处理的经典算法为实例,通过程序和图像,来帮助读者一步步掌握Python绘图和数据可视化的方法和技巧,并 ...

  9. python 绘图介绍

    1. python 绘图介绍 2. 函数 import numpy as np import matplotlib.pyplot as plt t = np.arange(0.0, 3.0, 0.01 ...

  10. Python绘图

    1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import mat ...

随机推荐

  1. 【Gerrit】 快捷操作

    A:添加Reviewers V+B:Pachset刷到最新 D:Download patch J.K:文件移动选中 R:文件Reviewed状态修改 S:五星状态修改,可用于分类管理 U:返回上层 I ...

  2. solr-es

    一.lucene 1.是什么 是apache提供的一套java写的用于全文检索工具包,该工具包提供了用于实现全文检索的api类,可用于实现搜索引擎功能. 2.搜索常用方法 顺序扫描法:应用于数据结构固 ...

  3. Clickhouse 极简单机版本安装部署

    Clickhouse 极简单机版本安装部署 摘要 Clickhouse的安装与部署其实比较简单. 但是为了能够更加简单的部署与使用. 尤其是能够可以方便的添加到镜像内进行运行. 所以记录一下方便快捷的 ...

  4. [转帖]Jmeter学习笔记(六)——使用badboy录制脚本

    https://www.cnblogs.com/pachongshangdexuebi/p/11506274.html 1.下载安装 可以去badboy官网下载地址:http://www.badboy ...

  5. 【转帖】10个Linux 系统性能监控命令行工具

    引言: 系统一旦跑起来,我们就希望它能够稳定运行,不要宕机,不出现速度变慢.因此,对于Linux 系统管理员来说每天监控和调试 Linux 系统的性能问题是一项繁重却又重要的工作.监控和保持系统启动并 ...

  6. [转帖]vSphere虚拟化平台(vCenter和ESXi)升级注意事项

    https://www.dinghui.org/vmware-vsphere-upgrade.html 最近两年做了蛮多vSphere升级项目,几点思路,做一下汇总整理如下供参考: 一.升级必要性 1 ...

  7. 【转帖】如何使用route管理路由表

    这里是引用 route快捷使用方法 我们一般管理路由有使用route命令 本身route使用大致有两种方法:但其实 在实际操作中,我们熟练掌握一种方法就可以了. route 有以下6种操作方法: 1) ...

  8. 使用shell进行简单分析增量更新时间的方法

    使用shell进行简单分析增量更新时间的方法 思路 产品里面更新增量时耗时较久, 想着能够简单分析下哪些补丁更新时间久 哪些相同前缀的补丁更新的时间累积较久. 本来想通过全shell的方式进行处理 但 ...

  9. OpenPower机器上面搭建RabbitMQ 以及简单进行用户配置的方法

    OpenPower机器上面搭建RabbitMQ 以及简单进行用户配置的方法 公司有一台性能比较好的power机器. 同事要求安装rabbitmq 今天尝试进行了一下处理 公司里面有网络有相应的源 性能 ...

  10. Seata分布式事务 (理论与部署相结合)

    分布式事务--Seata 分布式事务 1. 本地事务与分布式事务 1.1 本地事务 本地事务,也就是传统的单机事务.在传统数据库事务中,必须要满足四个原则: 1.2 分布式事务问题 分布式事务,就是指 ...