Matplotlib(二)—— 子图

article/2025/9/22 11:29:34

Python模块 —— Matplotlib

  • Matplotlib(二)—— 子图
    • 四、子图
      • 4.1 均匀子图
        • 4.1.1 plt.subplots
        • 4.1.2 plt.subplot
      • 4.2 非均匀子图
        • 4.2.1 fig.add_gridspec
      • 4.3 子图上的方法
      • 4.4 墨尔本温度数据集
      • 4.5 画出数据的散点图和边际分布图

Matplotlib(二)—— 子图

大家可以关注知乎或微信公众号的share16,我们也会同步更新此文章。

四、子图

4.1 均匀子图

4.1.1 plt.subplots

fig,ax = plt.subplots(nrows, ncols, figsize, sharex, sharey, squeeze, subplot_kw, gridspec_kw, fig_kw)

  • 返回值:type(fig)是matplotlib.figure.Figure,type(ax)是numpy.ndarray;
  • nrows/ncols:创建行数*列数的子图;
  • figsize:指定整个画布的大小,以元组形式输入;
  • sharex/sharey:是否共享x/y轴的属性; squeeze:默认True;
  • subplot_kw:带有关键字的字典,该关键字传递给用于创建每个子图的add_subplot调用;
  • gridspec_kw:带有关键字的字典,该关键字传递给用于创建每个子图网格的GridSpec函数;
    在这里插入图片描述

4.1.2 plt.subplot

plt.subplot(nrows, ncols, index, projection, **kwargs)

  • projection:可取值{None / aitoff / hammer / lambert / mollweide / polar / rectilinear }

plt.tight_layout() 调整子图的相对大小使字符不会重叠
在这里插入图片描述

4.2 非均匀子图

   所谓非均匀包含两层含义,第一是指图的比例大小不同但没有跨行或跨列,第二是指图为跨列或跨行状态。

4.2.1 fig.add_gridspec

spec = fig.add_gridspec(nrows, ncols, width_ratios, height_ratios, **kwargs)

  • 没有 plt.add_gridspec 函数;
  • width_ratios/height_ratios:列表里的元素数与列数(行数)相等,代表各列(行)的宽度(高度)比例;

ax_k = fig.add_gridspec(spec[i,j]) spec[i,j]类似于索引

在这里插入图片描述

4.3 子图上的方法

fig,ax = plt.subplots(nrows, ncols, figsize, ···)

  • ax对象上定义了和plt类似的图形绘制函数,常用的有:plot、hist、scatter、bar、barh、pie;
  • 常用直线(水平/垂直/任意方向)的画法,依次为:ax.axhline(y,xmin,xmax)、ax.axvline(x,ymin,ymax)、ax.axline((x1,y1),(x2,y2))或ax.axline((x1,y1),slope) slope是斜率;
  • 设置坐标轴的规度(对数坐标等)、标题、轴名,依次为:set_xscale、set_title、set_xlabel;
  • 添加网格、图例:ax.grid(alpha=0.5,color=‘m’)、ax.legend(); 图例:放在plot函数中,方能显示全部字符,若放置在legend中,则只显示一个字符;
  • 添加文本注释:ax.annotate(s,xy,xytext,arrowprops,···),(s:注释的文本、xy:要注释的点、xytext:放置文本的位置、arrowprops:dict类型);
  • 添加箭头、将文本添加到(x,y)处:ax.arrow、ax.text(x,y,s,···);

在这里插入图片描述

4.4 墨尔本温度数据集

绘制出墨尔本1981~1990年的温度曲线,数据集点此下载

import matplotlib.pyplot as plt
import numpy as np
import pandas as pddf = pd.read_csv('/xxx/08 墨尔本温度.csv')
# Series操作时,转变成字符串
df['year'] = df.Time.str.split('-',expand=True)[0]
df.set_index('year',inplace=True)rows,cols = 2,5
year = np.array(df.index.unique()).reshape(rows,cols)
fig,ax = plt.subplots(rows,cols,figsize=(15,4),sharex=True,sharey=True)
fig.suptitle('墨尔本1981~1990年温度曲线')
for i in range(2):for j in range(5):k = str(year[i][j])t = df.loc[k].Temperatureax[i][j].plot(range(1,len(t)+1),t,marker='*')ax[i][j].set_title(k+'年')if j == 0:ax[i][j].set_ylabel('气温')fig.tight_layout()

在这里插入图片描述

4.5 画出数据的散点图和边际分布图

import matplotlib.pyplot as plt
import numpy as npx,y = np.random.randn(2,150)
fig = plt.figure(figsize=(6,4))
spec = fig.add_gridspec(2,2,width_ratios=[5,1],height_ratios=[1,6])ax1 = fig.add_subplot(spec[1,0])
ax1.scatter(x,y)
ax1.grid()ax2 = fig.add_subplot(spec[0,0])
ax2.hist(x,bins=10)
ax2.axis('off') # 隐藏坐标系ax3 = fig.add_subplot(spec[1,1])
ax3.hist(y,bins=10,orientation='horizontal') # 直方图变成水平方向
ax3.axis('off') # 隐藏坐标系fig.tight_layout()plt.subplots_adjust(wspace=0, hspace=0) # 调整子图间距

在这里插入图片描述

谢谢大家 🌹


http://chatgpt.dhexx.cn/article/v0yeAg1M.shtml

相关文章

物联网和海计算有什么关系,主要具有哪些优点?

物联网和海计算 海计算通过在物理世界的物体中融入计算与通信设备以及智能算法,让物物之间能够互连,在事先无法预知的场景中进行判断,实现物物之间的交互作用。海计算一方面通过强化融入在各物体中的信息装置,实现物体与信息装置…

再谈智能

1. 智能的产生 1.1 智能生成机理 有关智能生成的机理,一直是许多领域关注的焦点问题,涉及面之广、深很是少见,初步梳理可能会与这样几个最基本的问题有关:认知生成的机理、知识生成的机理、意义生成的机理、情感生成的机理、…

神码ai人工智能写作机器人_神经符号AI为我们提供具有真正常识的机器

神码ai人工智能写作机器人 By Katia Moskvitch 卡蒂亚莫斯科维奇(Katia Moskvitch) “那只狗躲在床底下。 再次。” (“The dog hid under the bed. Again.”) At any other time, IBM computer scientist Danny Gutfreund, then at IBM’s Haifa lab in Israel, would’ve pr…

关于人机智能的一点思考

0.小序 人智的“是”离不开非(不是),机智的“是”离开了非(不是)。真正的自主不是自己去决定什么,而是在随机中应变,在变化的人机环境系统中动态而又恰当地决定什么。自主不是自己去决定&#x…

基于知识图谱的智能问答

基于知识图谱的相关应用大致可以分为搜索、问答、决策、推荐等几种常见的类别,对于知识图谱的理解,可以参考之前的文章《三个角度理解知识图谱》,本文主要就年初规划的xx智能问答建设方案,介绍一下基于知识图谱的智能问答&#xf…

Python相关的人工智能库

移动互联网取代PC互联网领跑在互联网时代的最前沿,Android和iOS一度成为移动互联网应用平台的两大霸主,成为移动开发者首选的两门技术,HTML5以其跨平台的优势在移动互联网应用平台占据重要位置,可以说是后来者居上。 由于技术的限…

基于知识图谱的智能问答方案

向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 三个角度理解知识图谱 2012年谷歌首次提出“知识图谱”这个词,由此知识图谱在工业界也出现得越来越多,对于知识图谱以及相关概念的理解确实也是…

17届竞赛技术报告-越野组 | 山东大学(威海)-越野三队

学校:山东大学(威海) 队伍名称:越野三队 参赛队员:郑睿、茅陈昕、余海波 带队教师:王小利刘萍萍 01 引 言 第十七届全国大学生智能车竞赛将于2022年七至八月在全国各赛区有序展开,大赛旨在培养…

龙口数字化转型果丰叶绿!华为城市智能体成就县域智慧城市新标杆

9月正是沿海城市开海的日子。而与大小渔港同样热闹的还有2022华为龙口城市智能体与云产业大会现场;27家企业正在与新近建成的龙口&华为工业互联网创新中心合作签约,投资总额634.77亿元。而这样的繁忙恰巧代表了龙口未来发展的新方向、新动能。 “一体…

智能研究的另类思考

【摘 要】 本文从教育实践长期存在的诸多矛盾困扰中引发了对智能科学的好奇和探索热情。将系统科学、思维科学、大成智慧引入到教育和智能科学研究中来,从方法论的高度,以东方人特有的整体思维优势,用系统的眼光、整体视野对人类智能进行系统…

人工智能

这是土盐的第118篇原创文章 1 大家好,我是土盐。 刚瞄了几眼《AI 未来》,其中有句话,让我印象深刻:人生是由无数转折点组成的。 这里再次推荐李开复的一本《人工智能》,也许人工智能是您职业的转折点。 人工智能 李开复…

美国海军计算机工作站,美国海军用上了3D打印,工控机智能支持3D打印技术

原标题:美国海军用上了3D打印,工控机智能支持3D打印技术 3D打印作为一种新型的制造加工模式,最近几年得到了迅猛发展。技术的不断成熟与完善,以及可打印的材料进一步拓展,使得3D打印开始渗透到很多重要领域与行业。比如…

人机混合智能的视角:军事人工智能的沿革与发展

本文摘自《智能安全》2022.12 摘要:随着技术的快速发展,战争的形态也在不断变化,军事智能化的议题越来越重要。人类智能与机器智能的有效协同在战争中会扮演越来越重要的角色。本文梳理了美军发展演进的作战概念后,结合当前人工智能的特点和不…

关于海底光缆不为人知的“秘密”

海底光缆是互联网的“中枢神经”,承载了全球90%以上的国际语音和数据传输,没有它,互联网只是一个局域 世界海底光缆分布图 一直以来,它因埋藏于海底深处而披上神秘面纱,今天我们带你走进海底光缆的世界。海底光缆与陆地…

从零开始嵌入聊天机器人服务(小白适用)

文章目录 一、为什么需要聊天机器人二、那么在哪里才能搞得到三、我搞到了,该怎么用(一)青云客(初学者强推)(二)图灵机器人(三)海知智能机器人 四、使用总结 一、为什么需…

知识图谱升温之势已现,不要错失下一个AI风口

近年来,随着大家对高级认知能力的积极探索,知识图谱因为表达能力强,扩展性好,并能兼顾人类认知与机器自动处理,引起了学术界、工业界以及政府部门的高度关注。 最先被大家熟知的应用领域应属搜索引擎,为了让…

项目实训日志一

项目实训日志一 项目开始已经有几天了,一直在读《Approximation Algorithm》这本书,由于大部分概念都比较陌生,读得很慢,目前主要把第3章的阅读翻译工作完成了。 本章中关键问题是斯坦纳树问题和TSP旅行商问题,在看这…

实习日志(5)

2021.08.02 星期一 学习vue也有一段时间时间了,回想一下学的都是一些概念,实际操作很少,所以今天我在网上重新又找了一个博主的视频讲解,看了一下之后,感觉他每次讲一个小内容的时候,都会有好几个小案例&am…

实习日志@

2022/4/22 todoList: 大概熟悉一下hui组件了解云计算的意思,中心云边缘云的意思概念(对项目背景有一定云计算的了解)代码下载下来以后运行起来,看一下产品的功能,熟悉一下产品流程,尝试理解一…

实习日志【一】

实习日志【一】 概述1.jdk安装2.idea安装3.tomcat安装4.maven安装5.MySQL安装6.notepad安装 概述 今天的任务主要为开发环境的搭建,安装了jdk、idea、tomcat、maven、mysql和notepad,以备后续的工作。 1.jdk安装 解压相关文件配置环境变量 &#xff0…