python作图

news2024/11/29 1:36:10

最重要的一张图了,有助于了解一下图的各个组成部分。最重要的一句话就是 Figure包含至少一个Axes,每个Axes可以被认为是一个模块(包含坐标轴,标题,图像内容等)。因此,创建单图的时候就是在Figure中唯一一个axes上进行设置;多图的时候就是分别对每一个axes进行设置。

fig = plt.figure()  # an empty figure with no Axes
fig, ax = plt.subplots()  # a figure with a single Axes
fig, axs = plt.subplots(2, 2)  # a figure with a 2x2 grid of Axes. Here axs contains two axes.
fig, (ax1, ax2) = plt.subplots(1, 2) # a figure with a 1*2 grid of Axes

其实 https://matplotlib.org/stable/users/explain/quick_start.html 中个介绍的比较清楚,但是比较长,这边就简化些。
需要用的包:

import matplotlib.pyplot as plt
import numpy as np

import matplotlib as mpl
  1. 基本单张图

    x = np.linspace(0, 2, 100)  # Sample data.
    
    plt.figure(figsize=(5, 2.7), layout='constrained')
    plt.plot(x, x, label='linear')  # Plot some data on the (implicit) axes.
    plt.plot(x, x**2, label='quadratic')  # etc.
    plt.plot(x, x**3, label='cubic')
    plt.xlabel('x label')
    plt.ylabel('y label')
    plt.title("Simple Plot")
    plt.legend()
    plt.show()
    

    很简单,但是不太推荐这种形式,尤其是需要更改复杂的东西的时候。下面这种形式更加推荐。

    x = np.linspace(0, 2, 100)  # Sample data.
    
    # Note that even in the OO-style, we use `.pyplot.figure` to create the Figure.
    fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
    ax.plot(x, x, label='linear')  # Plot some data on the axes.
    ax.plot(x, x**2, label='quadratic')  # Plot more data on the axes...
    ax.plot(x, x**3, label='cubic')  # ... and some more.
    ax.set_xlabel('x label')  # Add an x-label to the axes.
    ax.set_ylabel('y label')  # Add a y-label to the axes.
    ax.set_title("Simple Plot")  # Add a title to the axes.
    ax.legend()  # Add a legend.
    plt.show()
    

    在这里插入图片描述

  2. 多图排列

    import matplotlib.pyplot as plt
    import numpy as np
    
    # Helper function used for visualization in the following examples
    def identify_axes(ax_dict, fontsize=48):
        """
        Helper to identify the Axes in the examples below.
        Draws the label in a large font in the center of the Axes.
        Parameters
        ----------
        ax_dict : dict[str, Axes]
            Mapping between the title / label and the Axes.
        fontsize : int, optional
            How big the label should be.
        """
        kw = dict(ha="center", va="center", fontsize=fontsize, color="darkgrey")
        for k, ax in ax_dict.items():
            ax.text(0.5, 0.5, k, transform=ax.transAxes, **kw)
    
    
    np.random.seed(19680801)
    hist_data = np.random.randn(1_500)
    
    fig = plt.figure(layout="constrained")
    ax_array = fig.subplots(2, 2, squeeze=False)
    
    ax_array[0, 0].bar(["a", "b", "c"], [5, 7, 9])
    ax_array[0, 1].plot([1, 2, 3])
    ax_array[1, 0].hist(hist_data, bins="auto")
    ax_array[1, 1].imshow([[1, 2], [2, 1]])
    
    identify_axes(
        {(j, k): a for j, r in enumerate(ax_array) for k, a in enumerate(r)},
    )
    

    在这里插入图片描述

    ax_array = plt.figure(layout="constrained").subplot_mosaic(
        """
        .α.
        b☢ℝ
        ddd
        """,
        empty_sentinel=".", # default
        # set the height ratios between the rows
        height_ratios=[1, 3.5, 1],
        # set the width ratios between the columns
        width_ratios=[1, 3.5, 1],
        per_subplot_kw={
            "☢": {"projection": "polar"},
        },
    )
    
    np.random.seed(19680801)
    hist_data = np.random.randn(1_500)
    
    ax_array['α'].bar(["a", "b", "c"], [5, 7, 9])
    ax_array['b'].plot([1, 2, 3])
    ax_array['d'].hist(hist_data, bins="auto")
    ax_array['ℝ'].imshow([[1, 2], [2, 1]])
    identify_axes(ax_array)
    

    在这里插入图片描述

    更多请参考https://matplotlib.org/stable/users/explain/axes/mosaic.html ,花样太多了,根本用不过来。

  3. 保存图像
    fig.savefig('MyFigure.png', dpi=300, bbox_inches='tight', pad_inches=0.2)

  4. 颜色color在这里插入图片描述

  5. marker的形式

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

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

相关文章

BAT028:批量将文件修改日期后缀更新为最新修改日期

引言:编写批处理程序,实现批量将文件修改日期后缀更新为最新修改日期。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件,点击【…

文本识别工具 TextSniper for Mac有哪些特点

TextSniper 是一款 macOS 平台上的文本提取工具,它可以将屏幕上的文字内容快速转换为可编辑的文本。无论是从图像、视频、PDF 文件还是其他类型的文档中提取文字,TextSniper 都提供了便捷的功能。 以下是 TextSniper的一些主要特点和功能: …

智慧粮仓粮库解决方案:视频+AI识别技术赋能,守护大国粮仓

一、需求背景 我国作为世界人口大国,农产品需求量庞大,保障粮食等重要农产品安全是经济社会稳定发展的重要基础。粮食安全涉及到生产、收购、加工、储藏、销售等全产业链,既涉及新型基础设施建设,也有对软件技术等专业能力要求。…

我的128创作纪念日

我的创作128纪念日 🎈1.机缘🎈2.收获🎈3.反思与憧憬 🎈1.机缘 2023年6月13日的那天,开始了CSDN的创作之旅,那时的我还是一名大一的学生,机缘巧合下开始了创作,主要也是分享自己在学习…

Apache Doris (四十二): RECOVER数据删除恢复

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

web前端面试-- IEEE754标准JS精度丢失问题0.1+0.2!=0.3、0.2+0.3==0.5 十进制转二进制讲解

本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 背景 WEB前端面试官:0.20.3是否等于0.5&#xff…

文心一言 VS 讯飞星火 VS chatgpt (116)-- 算法导论10.3 1题

一、用go语言,画图表示序列(13,4,8,19,5,11),其存储形式为多数组表示的双向链表。同样画出单数组表示的形式。 文心一言: 在Go语言中,我们无法直接画图,但我…

用Python造轮子

目录 背景安装setuptools库准备要打包的代码创建setup.py文件打包生成whl文件把库装到电脑上使用这个库 背景 如何把自己写的代码,打包成库方便其他人使用 安装setuptools库 正所谓想要富先修路,先把造轮子要用的库装上 pip install wheel pip insta…

C# Socket通信从入门到精通(1)——单个同步TCP客户端C#代码实现

前言: Socket通信中有tcp通信,并且tcp有客户端和服务器,本文介绍的就是如何使用c#去实现一个tcp客户端,并且由于c#中有多种方式可以实现tcp客户端的功能,本文介绍的是使用TcpClient类来实现tcp客户端功能(如需源码,订阅专栏后加入文章底部qq群获取),demo软件界面如下…

供应链 | 零售商-供应商柔性承诺契约:一种鲁棒优化方法 (二)

原文作者:Aharon Ben-Tal, Boaz Golany, Arkadi Nemirovski, Jean-Philippe Vial​ 引用:Ben-Tal, A., Golany, B. , Nemirovski, A., & Vial, J. P… (2005). Retailer-supplier flexible commitments contracts: a robust optimization approach. …

View 自定义 - 概览

一、体系 详见:Activity、Window、DecorView、ViewRoot 之间的关系 二、绘制前的准备 DecorView 详见:DecorView 顶部图中可以看出 ViewRoot 最后一步是绘制,在绘制之前系统会有一些准备,即前面几个步骤:创建PhoneW…

D/A变换器隔离变送器PWM信号转模拟量1Hz~10KHz转0-5V/0-10V/4-20mA

主要特性: >>精度等级:0.1级。产品出厂前已检验校正,用户可以直接使用 >>辅助电源:8-32V 宽范围供电 >>PWM脉宽调制信号输入: 1Hz~10KHz >>输出标准信号:0-5V/0-10V/1-5V,0-10mA/0-20mA/4-20mA等&…

绝地求生游戏缺少msvcp140.dll丢失打不开怎么办?这6个方法都能修复

计算机系统中,我们经常遇到各种错误和问题。其中,“MSCVCP140.DLL丢失”是一个常见的错误,它通常出现在运行某些程序或游戏时。这个DLL文件是Microsoft Visual C 2015 Redistributable的一部分,如果它丢失或损坏,可能会…

Spring Boot 可以同时处理多少请求?

文章目录 Spring Boot 的请求处理能力1. 硬件资源2. 应用程序的设计3. 配置4. 运行时环境 基准测试和性能优化高性能的 Spring Boot 应用程序示例结论 🎉欢迎来到架构设计专栏~Spring Boot 可以同时处理多少请求? ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#…

凝聚技术力量 共建测试生态 ——集成电路测试技术交流日成功举办

10月18日下午,凝聚技术力量,共建测试生态 ——集成电路测试技术交流会在上海成功举办。来自全国各地知名专家学者、技术大咖及企业代表齐聚一堂,共同探讨封装测试技术的发展方向,共话产业未来,共促产业发展。 本次活动…

Web前端—盒子模型:选择器、PxCook、盒子模型、正则表达式、综合案例(产品卡片与新闻列表)

版本说明 当前版本号[20231019]。 版本修改说明20231018初版20231019补充了综合案例二新闻列表的代码及完善部分代码 目录 文章目录 版本说明目录盒子模型01-选择器结构伪类选择器基本使用:nth-child(公式)伪元素选择器 02-PxCook03-盒子模型盒子模型-组成边框线四个方向单方…

Linux将磁盘空闲空间转移到其他目录下(home目录转移到root目录下)

目录 1、查看分区 2、备份home分区文件 (重要) 3、卸载/home 4、删除/home所在的lv 5、扩展/root所在的lv(我这里还扩展了、dev/sr0) 6、扩展/root文件系统。 7、重新创建home lv 创建时计算好剩余的磁盘容量,建…

html或web页面一键打包为apk

最近需要将html通过app的方式发布,但是苦于不会android,因此在网上找到了一个打包apk的工具。 官方首页:Download v5.2 Pro | Website 2 APK Builder (With App Bundle .aab support) 官方文档:入门 |文档 - 网站 2 APK 生成器 (websitetoa…

单链表算法经典OJ题

目录 1、移除链表元素 2、翻转链表 3、合并两个有序链表 4、获取链表的中间结点 5、环形链表解决约瑟夫问题 6、分割链表 1、移除链表元素 203. 移除链表元素 - 力扣(LeetCode) typedef struct ListNode LSNode; struct ListNode* remove…

AI原生时代,一场彻底的“智能”觉醒

【潮汐商业评论/原创】 “你用‘AI’工作过吗?” 这往往是Freya向别人吐槽的第一句。 在使用各种版本语言大模型的过程中,Freya与人工智能的交流往往就像两个相切的圆,有交集,但又好像没有,双方你问你的&#xff0c…