yjs04——matplotlib的使用(多个坐标图)

news2024/12/28 18:30:55

 1.多个坐标图与一个图的折线对比

1.引入包;字体(同)

import matplotlib.pyplot as plt
import random
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False


2.创建幕布

        2.1建立图层幕布

        一个图:plt.figure(figsize=(...,...),dpi=...)

        不同图层:

       my_fig, axes = plt.subplots(nrows=xx, ncols=xx, figsize=, dpi=...)
..................................................................................

        2.2数据准备(同)   

        x = range(1, 15)                                      #x坐标轴的刻度 
        x_label = ["10月{}日".format(i) for i in x] #x坐标的写法
        y = range(5,25)                                      #y坐标轴的刻度

        y_shanghai = [random.uniform(15, 20) for i in x] #折线的y值
        y_beijing = [random.uniform(10, 15) for i in x]
·······················································································································   

        2.3画折线

        一个图:plt.plot(x,y_shanghai,label="",color="..",linestyle....)

                      plt.plot(x,y_beijing,...color="",...)

        多个图:

    axes[i].plot(x, y_shanghai, label=..., color=...)
或  axes[i][j].plot(x, y_shanghai, label=....)
..................................................................................

        2.4画坐标

        一个图plt.xticks(x,x_label)

        两个图

        axes[i][j].set_xticks(x)
        axes[i][j].set_xticklabels(x_label,rotation=45)
        axes[i][j].set_yticks(y)  #这里就是一个一个的写,刻度和名称分开的,一个图里是用一个函数的参数位置区分,这里是不同函数分开传

        2.5添加其他信息

        一个图:plt.xlabel();

                    plt.ylabel();

                    plt.title()

   多个图: 
           axes[i][j].set_xlabel("日期")
           axes[i][j].set_ylabel("温度")
           axes[i][j].set_title("上海15日内的天气变化")

···················································································································

        2.6添加图例(都要在画折线的时候加label)

        一个图:plt.legend(loc=0)

        多个图:

           axes[i][j].legend(loc=1)  #这里不是set_legend!看好了!

        2.7添加网格

        一个图:plt.grid(True,alpha=0.5)

        多个图:

           ax[i][j].grid(True,alpha=0.5)

..............................................................................................................................................

3.展示图像(同)

        plt.show()

                        

2.代码展示

# matplotlib 拆成不同坐标轴;拆到不同的图里
import matplotlib.pyplot as plt
import random
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 1.创建画布
# 在一个图里画创建画布 plt.figure(figsize=(80, 20), dpi=50)
m_fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(40, 60), dpi=90)

# 准备数据(与原来一样)
x = range(1, 15)
y=range(5,25)
y_shanghai = [random.uniform(15, 20) for i in x]
y_beijing = [random.uniform(10, 15) for i in x]
x_label = ["10月{}日".format(i) for i in x]

# 2.画图
# 添加折线
# plt.plot(x,y_shanghai);plt.plot(x,y_beijing)
ax[0][0].plot(x, y_shanghai, label="上海", color="b", linestyle="-")
ax[1][0].plot(x, y_beijing, label="北京", color="r", linestyle="--")

# 添加坐标轴
# 一个图中建立坐标轴是 plt.xticks(x,x_label,....);plt.yticks()
ax[0][0].set_xticks(x)
ax[0][0].set_xticklabels(x_label,rotation=45)
ax[0][0].set_yticks(y)

ax[1][0].set_xticks(x)
ax[1][0].set_xticklabels(x_label,rotation=45)
ax[1][0].set_yticks(y)

# 添加其他信息
# plt.xlabel("时间");plt.ylabel("温度");plt.title("15日内温度变化")
ax[0][0].set_xlabel("日期")
ax[0][0].set_ylabel("温度")
ax[0][0].set_title("上海15日内的天气变化")

ax[1][0].set_xlabel("日期")
ax[1][0].set_ylabel("温度")
ax[1][0].set_title("北京15日内的天气变化")

# 添加图例
# plt.legend(loc=0)
ax[0][0].legend(loc=1)
ax[1][0].legend(loc=1)

#添加网格
ax[0][0].grid(True,alpha=0.5)
ax[1][0].grid(True,alpha=0.5)

# 3.展示
plt.show()


我的问题:

1.对于fig,axes=plt.subplots(nrows=,nlows=,...)不太理解

首先是fig,axes这两个是你的幕布和坐标轴“名字”,下面坐标轴会用axes[i][j]来指定

其次nrows是有几行,nlows是有多少列,如果只有两个坐标,那么下面在说坐标轴时用一维数组来描述即可,即axes[0]与axes[1],但是如果有四个的话,要用axes[0][0],axes[0][1]....来指明

2.画坐标的时候的传参问题

一个图的坐标可以参数不写,然后会给你自动带入相应的值,但是多个图时必须传参;如plt.yticks()这里就可以不穿,但是axes[0].set_yticks(y)这里就得穿,要不然报错

3.图例那里 不是set_legend()是axes[i].legend()看好了,别顺手写了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2135409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Artec Leo协助定制维修管道,让石油和天然气炼油厂不停产

以下文章来源于Artec3D埃太科三维 ,作者小埃 挑战 在高温、狭窄的炼油厂中,准确测量结构复杂的受损管道和设备,以便设计、制造、安装定制维修解决方案,从而尽快完成修复。 解决方案 Artec Leo, Artec Studio, Geomagic Design X…

关于Vue2里 v-for和v-if一起用的时候会出现的问题

关于Vue2里 v-for和v-if一起用的时候会出现的问题 🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!&…

roboguide将tp程序转化为LS文本格式的方法

不同的软件版本可能操作不同,但是仍然可以参考文章中的办法。 我使用的版本如图所示: 1.首先,打开任意一个工程,如果没有,可以打开自带的示例。 如图,我打开了自带的示例,在帮助文档中可以找到…

ubuntu中QT+opencv在QLable上显示摄像头

ubuntu中QTopencv在QLable上显示摄像头 饭前的一篇文章吧,写完吃饭走 图像在机器视觉中的重要性是不可忽视的。机器视觉是指计算机利用图像处理技术进行图像识别、分析和理解的科学与技术领域。图像是机器视觉的输入数据,通过分析和处理图像&#xff0…

【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶

目录 1、Class类 1.1 Class类 实例属性 1.2 Class类 构造函数 1.3 Class类 定义方法 1.4 静态属性 和 静态方法 1.5 继承 extends 和 super 关键字 1.6 instanceof 检测是否实例 1.7.修饰符(readonly、private、protected 、public) 1.7.1 readonly 1.7.2 Private …

Frida 脚本抓取 HttpURLConnection 请求和响应

引入 Java 类: 引入 okhttp3.OkHttpClient、okhttp3.OkHttpClient$Builder、okhttp3.Interceptor、okhttp3.ResponseBody 等类。 创建自定义拦截器: 通过 Java.registerClass 创建自定义拦截器 MyInterceptor。拦截器中重写 intercept 方法&#xff0…

凸优化学习(2)——梯度类方法求解(gradient descent)

🍅 写在前面 👨‍🎓 博主介绍:大家好,这里是hyk写算法了吗,一枚致力于学习算法和人工智能领域的小菜鸟。 🔎个人主页:主页链接(欢迎各位大佬光临指导) ⭐️近…

使用ChatGPT撰写科研论文全攻略指南,附高效学术提示词指令

借助ChatGPT撰写科研论文,会让本该痛苦煎熬的写作过程变得有趣和高效。我会通过,了解 ChatGPT 如何改变撰写研究论文的传统方法,提供从构建大纲到制作复杂论点的创新解决方案。 无论您是经验丰富的研究人员还是新手作家,都可以了解 ChatGPT 的功能如何增强您的研究过程,确…

解决 VMware 无法上网问题

引言:平时学习某些技术,需要搭建集群环境,毕竟学习不可能真去购买那么多服务器来搭建集群。此时通过 VMware 安装多个系统来搭建集群是个不错的选择,而安装多个虚拟机容易出现网络问题,导致无法上网,这篇文…

重磅新品 HP1016:低功耗单相 CrM PFC 控制芯片正式发布

在输出功率 100-300W 的应用场景中,涵盖了消费电子、家用电器、LED 照明、通信设备等领域。传统的反激式架构逐渐难以应对现代大功率应用所需的高开关频率、高功率密度以及高效率标准,需要进行功率因数校正(PFC)。针对此类功率等级…

Brave编译指南2024 Windows篇:构建并启动Brave项目(七)

1.引言 在成功拉取Brave浏览器源码后,下一步就是进行项目的构建和启动。构建过程将源码转化为可执行的程序,使您能够在本地运行和测试Brave浏览器。在Windows环境下进行构建可能需要配置一些工具和环境变量,以确保整个过程的顺利进行。通过构…

这些211学校,跳一跳就能够着!自动化考研择校

这些211学校,努力跳一跳就能够着,搭配历年数据,供大家参考~ 目录 ① 中国矿业大学 ② 河海大学 ③ 上海大学 ④ 合肥工业大学 ⑤ 河北工大学 ① 中国矿业大学 复试线招生人数 23考研改考自控,专业课难度适中,学…

Qt 实现自定义截图工具

目录 Qt 实现自定义截图工具实现效果图PrintScreen 类介绍PrintScreen 类的主要特性 逐步实现第一步:类定义第二步:初始化截图窗口第三步:处理鼠标事件第四步:计算截图区域第五步:捕获和保存图像 完整代码PrintScreen.…

重学SpringBoot3-SpringApplicationRunListener

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-SpringApplicationRunListener 1. 基本作用2. 如何实现2.1. 创建SpringApplicationRunListener2.2. 注册SpringApplicationRunListener2.3. 完整示例 3.…

fpga系列 HDL:利用泰勒级数实现指数函数模块exponent

模块实现了指数函数的计算,利用泰勒级数展开进行近似计算。 e x 1 x 1 ! x 2 2 ! x 3 3 ! x 4 4 ! ⋯ e^x 1 \frac{x}{1!} \frac{x^2}{2!} \frac{x^3}{3!} \frac{x^4}{4!} \cdots ex11!x​2!x2​3!x3​4!x4​⋯ 它依赖于 floatMult 和 floatAdd 两个子…

解决 PyCharm 无法启动 Jupyter 服务器的问题:报错分析与解决方案

文章目录 报错背景报错详细信息解决方案pycharm 设置 报错背景 在使用 pycharm 付费版的过程中,发现一直无法启动 jupyter 服务器。 一直也不知道是为什么,直到在终端输入: jupyter notebook发现 jupyter 服务无法启动。 报错详细信息 下…

uniapp网络延迟优化之骨架屏

文章目录 前言uniapp网络延迟优化之骨架屏 一、骨架屏是什么?二、使用步骤1.在微信开发者工具生成骨架屏文件2.转成vue组件3.组件中使用4.效果展示4.开发时遇到的问题? 总结 前言 uniapp网络延迟优化之骨架屏 一、骨架屏是什么? 骨架屏的主…

在SOME/IP协议中Service Entry和Eventgroup Entry有什么作用?

在SOME/IP协议中,Service Entry和Eventgroup Entry是用于服务发现和事件订阅的关键元素。 1、Service Entry Service Entry主要用于服务发现,包括以下几种类型: Find Service:客户端发送请求以查找特定的服务。Offer Service:服务端广播其提供的服务,通知客户端该服务可…

基于Java的建筑节能监测系统+公共建筑能耗监测系统

建筑节能监测系统公共建筑能耗监测系统建筑能耗监测系统节能监测系统能耗监测建筑能耗监测能耗分析能耗管理能耗预测能耗监控能耗监测平台建筑能耗 介绍 能耗监控系统是为耗电量、耗水量、耗气量(天然气量或者煤气量)、集中供热耗热量、集中供冷耗冷量…

基于GA-PSO-BP混合神经网络的多输入多输出数据预测-Python代码实现

在机器学习中,多输入多输出(MIMO)问题常见于复杂系统建模、控制和预测。本文将介绍一种基于 GA-PSO-BP 混合算法的 MIMO 数据预测方法。我们结合遗传算法(GA)和粒子群优化算法(PSO)对 BP 神经网…