文章目录

  • 1. 绘制2D图像
    • 1.1. 与MATLAB相似的用法
    • 1.2. 面向对象的方法
    • 1.3. 图的属性设置
    • 1.4. 其他二维图
  • 2. 绘制3D图
    • 2.1. 在三维空间中绘制散点
    • 2.2. 在三维空间中绘制连续图形

1. 绘制2D图像

注意:如果在NoteBook环境下绘图时应该首先运行%matplotlib inline

1.1. 与MATLAB相似的用法

from matplotlib import pylab
import numpy as np
%matplotlib inlinex = np.linspace(0, 10, 20)               #构造数据
y = x * x + 2pylab.subplot(1,2,1)     #绘制子图1,并指定以下语句是在此子图上绘制
pylab.plot(y,x,'g*-')         #这里的'g*-'是线条的属性设置,和MATLAB一致pylab.subplot(1,2,2)        #子图2,以下绘制在子图2中
pylab.plot(y,x,'r--')

1.2. 面向对象的方法

from matplotlib import pyplot as plt
import numpy as np
%matplotlib inlinex = np.linspace(0, 10, 20)               #构造数据
y = x * x + 2#------------------------------------方法 1:add_axes方法添加画布--------------------------fig = plt.figure() # 新建图形对象,画板,图像的框架,可以通过 figsize=(14,6)指定画板尺寸#add_axes参数的前两个表示坐标,后两个表示图像长和高,范围[0,1]
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])     #创建画布,即子图,此方法创建的子图可以重叠#创建子图2
axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3])axes1.plot(x, y, 'r')
axes2.plot(y, x, 'g')#------------------------------------方法三:使用 subplots() 添加画布--------------------------
#fig为画板对象,axes为画布对象列表
fig, axes = plt.subplots(nrows=1, ncols=2) # 子图为 1 行,2 列,参数可以直接写为(1,2)
for ax in axes:ax.plot(x, y, 'r')#------------------------------------方法三:使用 add_subplot() 添加画布--------------------------
#                                                   '''此方法与MATLAB方法相似'''fig = plt.figure()       # 新建图形对象fig.add_subplot(1,2,1)plt.plot(x, y, 'r')
fig.add_subplot(1,2,2)plt.plot(x, y, 'g')

方法一:

方法二:

方法三:

1.3. 图的属性设置

  1. 图名称、坐标轴名称、图例
#1.设置标题
ax.set_title("title")#2.设置坐标轴名称
ax.set_xlabel("x")
ax.set_ylabel("y")#3. 设置图例,其中loc 参数标记图例位置1,2,3,4
#依次代表:右上角、左上角、左下角,右下角;0 代表自适应
ax.legend(["label1", "label2"],loc=0)
  1. 画布网格、坐标轴范围
    使用画布方法
axes.grid(True)  #设置网格,默认为False#设置坐标轴范围
axes.set_ylim([0, 60])
axes.set_xlim([2, 5])
  1. 线型、颜色、透明度、虚线交错宽度

    1. 方法一:
      颜色、线型、标记由三种符号组成:如 ‘r–^’ :红色、虚线、朝上三角标记。然后在指定其他参数
    ax.plot(x, x+1,  'r--^', lw=1)
    
    1. 方法二:
      全部由关键字传参
    ax.plot(x, x+16, color="purple", lw=1, ls='-', marker='s', markersize=8, markerfacecolor="yellow", markeredgewidth=2, markeredgecolor="blue")
    
    1. plot()参数
    参数 描述
    color 颜色
    alpha 透明度
    linestyle ,ls 线型
    linewidth ,lw 线宽
    marker 线标记
    markersize,ms 标记大小
    markeredgewidth mew 标记边界宽度
    markerfacecolor ,mfc 标记内部颜色
    markeredgecolor, mec 标记边界颜色
    1. 线型:
    描述
    -’ 实线
    ‘–’ 线型虚线
    ‘-.’ 点划线 点线交错
    ‘:’ 点型虚线

    注意:虚线交错宽度设置

    line, = ax.plot(x, x+8, color="black", lw=1.50)
    line.set_dashes([5, 10, 15, 10]) #偶数个列表,每两个树为一个实线与虚线的交错宽度
    
    1. 线标记:
    符号 描述
    ‘.’ 点标记
    ‘,’ 像素标记
    ‘o’ 圆圈标记
    ‘v’ 朝下的三角形
    ‘^’ 朝上的三角形
    ‘<’ 朝左的三角形
    ‘>’ 朝右的三角形
    1-4 tri_down marker,up,left,right
    ‘s’ 正方形
    ‘p’ 五边形
    ‘*’ 星型
    ‘h’ 1号六角形
    ‘H’ 2号六角形
    ‘+’ +号标记
    ‘x’ x号标记
    ‘D’ 钻石形
    ‘d’ 小版钻石形
    ‘|’ 垂直线形
    ‘_’ 水平线行
    1. 颜色
    符号 描述
    ‘b’ 蓝色
    ‘g’ 绿色
    ‘r’ 红色
    ‘c’ 青色
    ‘m’ 品红
    ‘y’ 黄色
    ‘k’ 黑色
    ‘w’ 白色

    其中颜色可以由完整的英文名称、十六进制字符码(’#777777’)、RGB、RGBA元组(((0, 128, 64))),只有符号表示的可以用方法一格式化组合线的属性,其他需用关键字传参。

1.4. 其他二维图

  1. 绘制散点图、梯步图、条形图、面积图
"""绘制散点图、梯步图、条形图、面积图
"""
n = np.array([0,1,2,3,4,5])fig, axes = plt.subplots(1, 4, figsize=(16,5))axes[0].scatter(x, x + 0.25*np.random.randn(len(x)))
axes[0].set_title("scatter")axes[1].step(n, n**2, lw=2)
axes[1].set_title("step")axes[2].bar(n, n**2, align="center", width=0.5, alpha=0.5)
axes[2].set_title("bar")# 提供两个函数,绘制交叉面积
axes[3].fill_between(x, x**2, x**3, color="green", alpha=0.5)
axes[3].set_title("fill_between")


2. 绘制直方图和累计直方图

"""绘制直方图
"""
n = np.random.randn(100000)
fig, axes = plt.subplots(1, 2, figsize=(12,4))axes[0].hist(n)
axes[0].set_title("Default histogram")
axes[0].set_xlim((min(n), max(n)))axes[1].hist(n, cumulative=True, bins=50)
axes[1].set_title("Cumulative detailed histogram")
axes[1].set_xlim((min(n), max(n)))

2. 绘制3D图

2.1. 在三维空间中绘制散点

from mpl_toolkits.mplot3d.axes3d import Axes3Dfig = plt.figure(figsize=(14,6))# 通过 projection='3d' 指定绘制 3D 图形
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax.scatter([1,2,3], [1,2,3], [1,2,3],c='r')          #分别对应三个坐标xyz,可以为单个数字表示单个坐标,可以为三个列表,表示多个坐标

2.2. 在三维空间中绘制连续图形

注意事项:

  1. 需要关联XY
    np.meshgrid(phi_p, phi_m)的作用是用对应的输入生成二维空间中的点。
from mpl_toolkits.mplot3d.axes3d import Axes3D#数据生成
phi_m = np.linspace(0, 2*np.pi, 100)
phi_p = np.linspace(0, 2*np.pi, 100)
X,Y = np.meshgrid(phi_p, phi_m)
Z = flux_qubit_potential(X, Y).Tfig = plt.figure(figsize=(14,6))# 通过 projection='3d' 指定绘制 3D 图形
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)

使用 Matplotlib 绘制 2D 和 3D 图形相关推荐

  1. 如何用python画数学图案_使用Matplotlib 绘制精美的数学图形例子

    一个最最简单的例子: 绘制一个从 0 到 360 度完整的 SIN 函数图形 import numpy as np import matplotlib.pyplot as pt x = np.aran ...

  2. java绘制三维曲线_使用JFreeChart绘制2D和3D折线图 | 学步园

    这是一个Web Project 首先是web.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem ...

  3. 使用JFreeChart绘制2D和3D折线图

    完整版见https://jadyer.github.io/ 这是一个Web Project 首先是web.xml <?xml version="1.0" encoding=& ...

  4. 用python画数学函数图像教程_使用Matplotlib 绘制精美的数学图形例子

    一个最最简单的例子: 绘制一个从 0 到 360 度完整的 SIN 函数图形 import numpy as np import matplotlib.pyplot as pt x = np.aran ...

  5. Matlab中绘制度长方体3D图形

    Matlab中绘制度长方体3D图形 已知空间中长方体网格的三维坐标(x,y,z)及其对应的值Value,绘制出长方体的各个面, 各个面的颜色根据对应坐标的值设定. 图形效果如下 以下是matlab中的 ...

  6. eeglab教程系列(8)-数据叠加平均{2}绘制2D和3D图

    1.绘制一些列的2D ERP scalp maps 本案例中将绘制一系列的2-D scalp maps,其中每个图表明的是一个特定的潜伏期的电压分布. 具体操作如下: Plot > ERP ma ...

  7. eeglab中文教程系列(7)-数据叠加平均{2}绘制2D和3D图

    目录 1.绘制一些列的2D ERP scalp maps 2.绘制一些列的3D ERP scalp maps 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 1 ...

  8. python求圆锥体的表面积_使用matplotlib绘制圆锥的三维图形

    我找到了一个解决办法,也许对其他人有用.在from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import matplo ...

  9. qmlcanvas绘制3d图形_透视Matplotlib核心功能和工具包 - 绘制3D图形

    关联知识 Matplotlib Python 线图 在此,我们将学习如何创建3D线图. 它类似于2D等效折线图,并且2D折线图的许多属性都结转到3D. 我们将在相同的轴上绘制凹凸曲线,并从不同角度查看 ...

最新文章

  1. spring boot mysql和mybatis
  2. ElasticSearch入门 :Windows下安装ElasticSearch
  3. firefox+android+平板,Firefox OS首款平板现身,“三头并进”追赶Android
  4. B-Suffix Array
  5. pythonista_Pythonista20190325伤不起
  6. 从全职高手开始的系统_全职高手8年登上巅峰荣耀,阅文做对了什么?
  7. 闲聊libhybris
  8. 任意文件夹下打开cmd窗口
  9. 2019年互联网大厂月饼大盘点,最丑的一家竟然是...
  10. setting配置文件详解
  11. 全自动过滤器:全自动自清洗过滤器对给排水总结的经验
  12. 查看计算机80端口,电脑技巧分享:检测和解决80端口被占用的2种方法
  13. python的label属性_python内置GUI库tkinter——Label类属性
  14. ih5长图如何滑动_iH5中级教程:微场景H5必备,横向滑动切换
  15. 力扣每日一题(九——保持城市天际线)
  16. mysql 某个日期加七天_Mysql时间操作(当天,昨天,7天,30天,半年,全年,季度)...
  17. 编程及C/C++初学者 FAQ
  18. LQ0141 纸张尺寸【水题】
  19. CAPL基础篇-----CAPL与Panel的交互
  20. 详解人工智能的五大思想流派 元芳你支持哪一派?

热门文章

  1. 在matlab中配置vlfeat
  2. Eclipse for Android —— ADT Bundle
  3. PDF 阅读器福昕阅读器 Foxit Reader v9.7.0.29455 中文便携版
  4. python调用百度接口实现ocr识别_Python 3调用百度OCR API实现剪贴板文字识别
  5. 酒店企业私域流量运营方案来了
  6. 【数理统计】高等代数
  7. 【Java】学习日记 Day11
  8. 在线测试屏幕软件康佳,硬件配置强大 不是说说而已
  9. 云密码技术--北京商密协会《云密码服务技术白皮书2019》
  10. pycharm中LeetCode插件乱码问题