pyplot绘制多个子图方法

matplotlib在一个图中绘制多个子图用plt.subplot()方法。

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号if __name__ == '__main__':#   plt.figure(figsize=(19.2, 9))# 第一个图:折线图plt.subplot(2, 4, 1)X = range(0, 100)Y = [(x-50)**2 for x in X]plt.title("折线图")plt.plot(X, Y, c="r", label="图例一")plt.xlabel("X")plt.ylabel("Y")plt.legend()# 第二个图:柱状图plt.subplot(2, 4, 2)X=["苹果", "雪梨", "红浪"]Y = [100,200,150]plt.title("柱状图")plt.bar(X, Y, facecolor='#9999ff', edgecolor='white')plt.ylabel("Y")# 第三个图:条形图plt.subplot(2, 4, 3)plt.title("条形图")plt.barh(X, Y, facecolor='#9900cc', edgecolor='white')# 第五个图:饼图plt.subplot(2, 4, 5)labels=["香蕉", "拔辣", "西柚", "柠檬茶", "王炸"]sizes=[100,150,30,75,68]explode = (0, 0.1, 0, 0, 0)plt.title("饼图")plt.pie(sizes, explode=explode, labels=labels, autopct='%.1f%%',shadow=False,startangle=150)# 第六个图:散点图plt.subplot(2, 4, 6)X = range(0, 100)Y1 = np.random.randint(0, 20, 100)Y2 = np.random.randint(0, 20, 100)plt.title("散点图")plt.plot(X, Y1, ".", marker=".", c="#9966ff", label="Y1")plt.plot(X, Y2, ".", marker="*", c="#6699ff", label="Y2")plt.xlabel("X")plt.ylabel("Y")plt.legend(loc="upper right")# 第七个图:雷达图plt.subplot(2, 4, 7, polar=True)plt.title("雷达图", pad=20)labels = np.array(["生命值", "灵敏度", "攻击力", "护甲", "守护光环", "威慑力", "成长"])dataLength = 7data1 = np.random.randint(5, 15, 7)data2 = np.random.randint(4, 15, 7)angles = np.linspace(0, 2 * np.pi, dataLength, endpoint=False)  # 分割圆周长data1 = np.concatenate((data1, [data1[0]]))  # 闭合data2 = np.concatenate((data2, [data2[0]]))  # 闭合angles = np.concatenate((angles, [angles[0]]))  # 闭合plt.polar(angles, data1, '.-', linewidth=1)  # 做极坐标系plt.fill(angles, data1, alpha=0.25)  # 填充plt.polar(angles, data2, '.-', linewidth=1)  # 做极坐标系plt.fill(angles, data2, alpha=0.25)  # 填充plt.thetagrids(angles * 180 / np.pi, labels)  # 设置网格、标签# 第把个图:箱线图plt.subplot(2, 4, 8)A = np.random.randint(0, 20, 100)B = np.random.randint(5, 20, 100)plt.title("箱线图")plt.boxplot((A,B),labels=["A","B"])plt.tight_layout(pad=1.08)plt.show()

效果

方法说明

1、plt.subplot(2, 4, 1)创建一个2行4列的图,并指定当前使用第1个子图。第三个参数可以取0~8(2*4),按行顺序获取子图,例如:plt.subplot(2, 4, 5)就是第5个,也就是第二行第一个。不需要画图的位置可以留空。

2、如果要使用极坐标系,例如上面的雷达图,那么plt.subplot需要加一个参数polar=True,不然这个图会直接覆盖其他的图。

3、为了多个子图间间隔合理,不至于出现不同子图之间文字覆盖,用plt.tight_layout()方法指定间隔。

author:蓝何忠

email:lanhezhong@163.com

pyplot画多个图,在一个图中绘制多个子图相关推荐

  1. 用python绘制y=x,y=1+sinx,编写Python程序,使用numpy、pandas、matplotlib三个扩展库在一个画布中绘制4个子图.

    目录 1.编写Python程序绘制y=x图. 2.绘制表达式为1+sin(x)的图. 3.编写Python程序,使用numpy.pandas.matplotlib三个扩展库在一个画布中绘制4个子图,分 ...

  2. QGIS打印布局中绘制多个子图

    QGIS如何绘制多图 数据准备 这是一份英国大曼彻斯特地区的数据,里面包含了教育.收入.人口密度.绿地比例.城市比例等数据,我们准备把这些数据在地图上呈现出来,为此,我们需要做在地图中绘制6幅子图,这 ...

  3. Python画多条线在一个图里

    概要: python的matplotlib作图很强大,本文教你用6种不同方式解决将多种数据曲线画到一起. 问题: 今天,老板又要一个数据报表,小明选择用 python来实现."用matplo ...

  4. python 一张图画多条线_Python画多条线在一个图里

    概要: python的matplotlib作图很强大,本文教你用6种不同方式解决将多种数据曲线画到一起. 问题: 今天,老板又要一个数据报表,小明选择用 python来实现."用matplo ...

  5. android 继承类图,Android Studio中绘制UML类图介绍

    Android Studio中绘制UML类图介绍 Android Studio中绘制UML类图介绍 动机 最近开始阅读项目源码,从其中一个模块开始看,奈何大项目中的一个模块,对于萌新而言,也太过于复杂 ...

  6. 怎样使用python画复杂函数_在python中绘制复杂的函数?

    我试图在python中绘制一个带有可变参数的复杂函数,并且发现我无法解释的差异.我的代码如下所示:import matplotlib.pyplot as plt from numpy import p ...

  7. python画多图在一个图_python pyecharts 实现一个文件绘制多张图

    Grid并行显示多张图 注意: 第一个图需为 有 x/y 轴的图,即不能为 Pie,其他位置顺序任意 from pyecharts import Bar, Line, Scatter, EffectS ...

  8. python在地图上画路线_如何在python中绘制热地图(实例)

    当我们进行数据挖掘工作.或者进行数据可视化以更好地展示成果时,很多时候我们需要借助到热地图的帮助.今天,我们就来介绍一下在seaborn绘图库中热地图heatmap的使用方法及参数设置. 热地图使用场 ...

  9. python画车辆轨迹图,在python中绘制轨道轨迹

    How can I setup the three body problem in python? How to I define the function to solve the ODEs? Th ...

最新文章

  1. 也是一个国外的final cut pro的模版网站
  2. mongodb幽灵操作的解决方案
  3. C++基础复习——C++语言数据类型
  4. freertos内核 任务定义与切换 原理分析
  5. 根据接口文档中的入参,生成自动化测试用例中的异常测试用例,包含用例描述,用例数据
  6. DOM的​getElementById() 和 getElementsByTagName() 方法
  7. NO.1 根据数组元素之和,获取对应索引
  8. C语言程序设计(第2版)课后答案
  9. 关于debian网卡驱动
  10. IP 地址分为哪几类?
  11. ASP.NET项目部署到阿里云服务器(IIS)
  12. Shiro学习01:使用Shiro实现身份管理和权限验证
  13. 使用java实现简单五子棋
  14. 写尽自己一个人的孤独却写不出心里的寂寞
  15. 【转】推送消息推送机制
  16. java判断小数位数_java如何获取一个double的小数位数
  17. [重装系统系列]fcitx 小企鹅输入法 安装 in ubuntu 15.04
  18. cdh 简介_CDH的介绍和部署
  19. php 自动关键词,php实现自动获取生成关键词功能
  20. python执行javascript网页_Python 爬虫如何优雅地执行 javascript 函数

热门文章

  1. 2010年6月刊:微博
  2. 日本JKK东京租房子全过程
  3. Nginx服务器安装SSL证书实现Https访问
  4. Dockerfile 构建mysql镜像
  5. vue中怎么点击修改文字_vue中如何实时修改输入的值
  6. android9 人脸解锁,小米MIUI 9上线后新增功能盘点:人脸解锁最实用
  7. 上线8年,腾讯为何现在暂停“漂流瓶”?
  8. 【Win10 应用开发】自适应Toast通知的XML文档结构
  9. 基于 iframe 的微前端框架 —— 擎天
  10. 卡片笔记应用怎么选?