Python、Matplot的subplot实现一行3列的子图绘制,并添加背景色

  • 1. 可能遇到的问题
  • 2. 示例
    • 1)绘制2*2(俩行俩列)的子图,并设置背景色
    • 2) 绘制1*3(一行三列)的子图,并设置横轴纵轴值
    • 3)绘制1*3(一行三列)的复杂子图
    • 4)将多个图4*5(四行五列)显示在一张图像上
  • 参考:

1. 可能遇到的问题

AttributeError: ‘AxesSubplot’ object has no property ‘axisbg’

问题描述:使用 Matplotlib subplot绘制2行2列的子图,并带有背景色时报如上错误
错误原因,subplot中没有 axisbg 属性
解决办法:把axisbg 改成 facecolor

2. 示例

1)绘制2*2(俩行俩列)的子图,并设置背景色

#!/usr/bin/env python
# !encoding=utf-8import matplotlib.pyplot as pltif __name__ == '__main__':for i, color in enumerate("rgby"):# 报错:AttributeError: 'AxesSubplot' object has no property 'axisbg'# plt.subplot(221 + i, axisbg=color)# 成功plt.subplot(221 + i, facecolor=color)plt.show()

修改后成功如图:

2) 绘制1*3(一行三列)的子图,并设置横轴纵轴值

#!/usr/bin/env python
# !encoding=utf-8import matplotlib.pyplot as plt
import numpy as npif __name__ == '__main__':for i, color in enumerate("rgb"):# 报错:AttributeError: 'AxesSubplot' object has no property 'axesbg'# plt.subplot(221 + i, axesbg=color)# 成功plt.subplot(131 + i, facecolor=color)# x轴等差数列,y轴等比数列x = i + 1x1 = np.arange(0, x, 1)y1 = np.logspace(1, x, num=x, base=2)print(x1, ' ', y1)plt.plot(x1, y1)plt.show()

3)绘制1*3(一行三列)的复杂子图

import numpy as np
import matplotlib.pyplot as plt# example data
x = np.arange(0.1, 4, 0.1)
y1 = np.exp(-1.0 * x)
y2 = np.exp(-0.5 * x)# example variable error bar values
y1err = 0.1 + 0.1 * np.sqrt(x)
y2err = 0.1 + 0.1 * np.sqrt(x / 2)# Now switch to a more OO interface to exercise more features.
fig, (ax_l, ax_c, ax_r) = plt.subplots(nrows=1, ncols=3,sharex=True, figsize=(12, 6))ax_l.set_title('all errorbars')
ax_l.errorbar(x, y1, yerr=y1err)
ax_l.errorbar(x, y2, yerr=y2err)ax_c.set_title('only every 6th errorbar')
ax_c.errorbar(x, y1, yerr=y1err, errorevery=6)
ax_c.errorbar(x, y2, yerr=y2err, errorevery=6)ax_r.set_title('second series shifted by 3')
ax_r.errorbar(x, y1, yerr=y1err, errorevery=4)
ax_r.errorbar(x, y2, yerr=y2err, errorevery=3)fig.suptitle('Errorbar subsampling for better appearance')
plt.show()

4)将多个图4*5(四行五列)显示在一张图像上

import osimport matplotlib.image as mpimg
import matplotlib.pyplot as pltfolder_path = os.getcwd().replace('\\', '/')
imgpath = folder_path + "/images/001.jpg"
# matplot读出来是RGB
image = mpimg.imread(imgpath)for i in range(20):plt.subplot(4, 5, i + 1)plt.imshow(image)  # 通过for循环逐个显示图像plt.xticks([])  # 去掉x轴的刻度plt.yticks([])  # 去掉y轴的刻度
plt.show()

参考:

  • https://www.matplotlib.org.cn/tutorials/introductory/sample_plots.html#ellipses

  • https://matplotlib.org/gallery/lines_bars_and_markers/errorbar_subsample.html#sphx-glr-gallery-lines-bars-and-markers-errorbar-subsample-py

  • https://www.cnblogs.com/elitphil/p/12221103.html

Python、Matplot的subplot实现一行3列的子图绘制,并添加背景色相关推荐

  1. python利用表格中的某一个列_python取excel表格第一列数据?python操作excel,使用xlrd模块,获取某一列数据的语句为...

    用Python修改excel中一列数据 可以使用pandas库,先读取excel文件,然后使用pandas库来修改一列,然后写入文件即可. 怎样用python,读取excel中的一列数据 sheet. ...

  2. python sql语句换行_python一行sql太长折成多行并且有多个参数的方法

    python一行sql太长折成多行并且有多个参数 sql语句本身就支持多行, 你可以用两种方法断行 注意: 第一种会带入换行符(\n), 第二种只是一行 a='''xxxx本身也可以作为注释使用xxx ...

  3. Python批量修改txt文件的某列数值

    Python批量修改txt文件的某列数值,在针对使用YOLOv5目标检测算法过程中,会面临更改标注文件(.txt文件)标签的情况,以将txt文件中第一列为0的数改为1为例,则可使用如下代码进行修改: ...

  4. python plt.subplot_Python Matplotlib subplot函数详解:创建子图

    使用 Matplotlib 除可以生成包含多条折线的复式折线图之外,它还允许在一张数据图上包含多个子图. 调用 subplot() 函数可以创建一个子图,然后程序就可以在子图上进行绘制.subplot ...

  5. MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)

    1. 子查询概念 子查询是指嵌套在其他语句(SELECT . INSERT . UPDATE . DELETE 等)中的 SELECT 语句:子查询也称为内查询( inner query )或者嵌套查 ...

  6. python代码画简单图-Python figure参数及subplot子图绘制代码

    1. Python的figure参数主要有: def figure(num=None, # autoincrement if None, else integer from 1-N figsize=N ...

  7. python获取excel某一列-Python从Excel中读取日期一列的方法

    如下所示: import xlrd import datetime file=u"伏特加.xls"#注意读中文文件名稍微处理一下 data=xlrd.open_workbook(f ...

  8. C语言学习之利用指针输出二维数组任一行任一列元素的值

    利用指针输出二维数组任一行任一列元素的值. int main(){int a[3][4];int i,j,x,y;int (*p)[4];//指针变量p指向包含4个整型元素的一维数组printf(&q ...

  9. python3读取excel某一列_怎样用python,读取excel中的一列数据!python读取excel某一列数据...

    Python 如何循环读取csv或者excel中的一列数据,写入到中搜索 是可以 a.csv复制到 b.csv中 import csv def foo(): with open('a.csv', 'r ...

最新文章

  1. 算法----Excel 表中相对应的列名称
  2. c++优化工具Gprof
  3. 从Google Wave和XML看软件复杂性之争,互联网营销
  4. php curl 下载图片,CURL实现下载远程图片并保存到本地
  5. java适配器模式火鸡变凤凰是,读《HeadFirst设计模式》笔记之适配器模式
  6. Boostrap技能点整理之【网格系统】
  7. MongoDB分析工具之三:db.currentOp()
  8. 在学Python前学Linux,Python原来这么好学-1.2节: 在Linux中安装python
  9. Red Hat Linux 253 实验部分
  10. CSDN博客添加微信公众号图片
  11. SQL SERVER BCP的用法
  12. abaqus编写本构方程vumat_abaqus vumat sdv
  13. 电脑重启只剩下c盘怎么办_我的电脑正在正常运行突然自动重启了,重启后发现系统只剩下C盘了,请教怎么恢复?...
  14. PyTorch: Conv2d and ConvTranspose2d
  15. [转]基于大规模语料的新词发现算法
  16. Elasticsearch:Dissect 和 Grok 处理器之间的区别
  17. 使用Android Studio 查看内存泄漏
  18. 机器学习 卷积神经网络 Convolutional Neural Network(CNN)
  19. VSPD V9版(Virtual Serial Port Driver 9.0)
  20. 【Java开发】 Spring 09 :Spring Data REST 实现并访问简单的超媒体服务

热门文章

  1. HDR sensor 原理介绍
  2. 2021年大数据ZooKeeper(五):ZooKeeper Java API操作
  3. Android 功能防抖 的实现
  4. Installation failed with message Invalid File:(Application Installatino Failed)
  5. GDOI2018记录
  6. Noip2017 跳房子——普及组
  7. 2022-2028年中国润滑油基础油行业市场研究及前瞻分析报告
  8. 【Luogu】P1013进制位(搜索)
  9. Oracle Database 11.2.0.4.0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证...
  10. 九度oj 题目1411:转圈