python包之matplotlib基础概念和代码详解

news2024/11/22 21:05:33

1 基础概念

Figure: 可以理解为 canvas(画布),在画布上可以展示一个或多个Axes

Axes:中文翻译为轴,但与数学中的概念不同,Axes可以理解为子画布,它属于Figure。也可以理解为它就是一个图形或绘制图形的区域,每个Axes有自己的轴、标题、图例等
在这里插入图片描述

2 一个Figure,一个Axes

# sphinx_gallery_thumbnail_number = 10
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter

data = {'Barton LLC': 109438.50,
        'Frami, Hills and Schmidt': 103569.59,
        'Fritsch, Russel and Anderson': 112214.71,
        'Jerde-Hilpert': 112591.43,
        'Keeling LLC': 100934.30,
        'Koepp Ltd': 103660.54,
        'Kulas Inc': 137351.96,
        'Trantow-Barrows': 123381.38,
        'White-Trantow': 135841.99,
        'Will LLC': 104437.60}
group_data = list(data.values())
group_names = list(data.keys())
group_mean = np.mean(group_data)

# 查看风格 风格控制这颜色,线宽,背景等
# print(plt.style.available)
plt.style.use('ggplot')

# 自动调整视图布局
# rc:resource configuration
plt.rcParams.update({'figure.autolayout': True})

# fig即Figure, ax即Axes
fig, ax = plt.subplots(figsize=(8, 8))
# 水平柱状图
ax.barh(group_names, group_data)
# x 轴标签旋转 45度
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')

# 在 group_mean 位置添加竖线,ls:线性,color:颜色
ax.axvline(group_mean, ls='--', color='r')

# 添加提示词
for group in [0, 5, 8]:
    ax.text(145000, group, "New Company", fontsize=10,
            verticalalignment="center")

# x轴标签格式
def currency(x, pos):
    """x:值
       pos:位置
    """
    if x >= 1e6:
        s = '${:1.1f}M'.format(x*1e-6)
    else:
        s = '${:1.0f}K'.format(x*1e-3)
    return s
formatter = FuncFormatter(currency)

# xlim:x轴范围  xlabel:x轴名称,ylabel:y轴名称,title:标题
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
       title='Company Revenue')
ax.xaxis.set_major_formatter(formatter)
ax.set_xticks([0, 25e3, 50e3, 75e3, 100e3, 125e3])

在这里插入图片描述

3 一个Figure,多个Axes

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
plt.rcParams['axes.unicode_minus']=False # 显示负号

data1, data2, data3, data4 = np.random.randn(4, 100)
# nrows:行数, ncols:列数, sharey:是否共用y轴
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharey=True, figsize=(7, 4))
# 画第1个图
ax1.plot(data1, data2, marker="x")
# 添加标注
ax1.annotate('零点', xy=(0, 0), xytext=(3, 1.5),
             arrowprops=dict(facecolor='black', shrink=0.05),
             )
# 添加竖线、横线
ax1.axvline(0, color="black")
ax1.axhline(0, color="black")

# 画第2个图
ax2.plot(data3, data4, marker="o")

在这里插入图片描述

# 另一种编程风格
import matplotlib.pyplot as plt
data1, data2, data3, data4 = np.random.randn(4, 100)
# 行数,列数 当 行数*列数<10 时,可以直接指定第i个Axes
plt.subplot(221)
plt.plot(data1, data2)
plt.grid(True)

plt.subplot(224)
plt.plot(data3, data4)
plt.grid(True)

plt.show()

在这里插入图片描述
关于一些概念的图解:
请添加图片描述

参考

Effectively Using Matplotlib
Usage Guide

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

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

相关文章

为什么有了IP地址,还需要MAC地址呢?

不知道大家有没有困惑&#xff1a;为什么有了IP地址&#xff0c;还需要MAC地址呢&#xff1f;他们之间到底有什么联系&#xff1f;又有什么区别&#xff1f;是不是有一个是多余的&#xff1f; 流言传到了“IP地址”和“MAC地址”的耳朵里&#xff0c;他俩也非常苦恼&#xff0c…

【Unity】 UI自适应案例

UI自适应案例 案例一:背包自动布局1. 创建背包面板2. 背包子项自动布局3. C#代码:动态添加子项到背包中案例二:文字自适应高度1. 创建文字面板2. 组件基本设置3. C#代码:动态更新文字并自适应高度案例一:背包自动布局 需求:动态添加背包组件,设定每行特定个数并自动匹配…

抖音seo矩阵系统源码开发(三)

抖音seo框架分析&#xff1a; 抖音SEO源码主要有两种框架&#xff1a; 一是基于爬虫的框架&#xff0c;通过爬取抖音平台的内容&#xff0c;提取关键词和标签等信息&#xff0c;再结合优化技巧&#xff0c;最终实现SEO效果的提升&#xff1b;二是基于粉丝互动和品牌策划的框架…

制作iOS越狱deb插件+dpkg命令行教程

iOS越狱deb插件的制作 dpkg命令行教程 deb安装包的制作 介绍 Cydia Sileo都是基于Debian开发的, 所以插件都是打包成.deb格式 deb包是Debian软件包格式&#xff0c;文件扩展名为.deb。是Debian系统(包含Debian和Ubuntu等)专属安装包格式。 deb包在Linux操作系统中类似于wi…

探索小程序容器在软件应用架构中的角色和优势

今年来&#xff0c;随着软件及开源技术的发展&#xff0c;软件应用架构的概念也随之流行起来。它提供了一种组织和设计软件系统的有效方法&#xff0c;具有许多优势和好处&#xff1a; 模块化和可维护性&#xff1a;软件应用架构将系统拆分为模块化的组件&#xff0c;每个组件负…

00后实在太卷了,测试用例写的比我还好,羞耻啊.....

经常看到无论是刚入职场的新人&#xff0c;还是工作了一段时间的老人&#xff0c;都会对编写测试用例感到困扰&#xff1f;例如&#xff1a; 如何编写测试用例&#xff1f; 作为一个测试新人&#xff0c;刚开始接触测试&#xff0c;对于怎么写测试用例很是头疼&#xff0c;无…

面了一个5年经验的测试工程师,自动化都不会也敢喊了16k,我也是醉了····

在深圳这家金融公司也待了几年&#xff0c;被别人面试过也面试过别人&#xff0c;大大小小的事情也见识不少&#xff0c;今天又是团面的一天&#xff0c; 一百多个人都聚集在一起&#xff0c;因为公司最近在谈项目出来面试就2个人&#xff0c;无奈又被叫到面试房间。 整个过程…

【JavaEE进阶】——第七节.Spring AOP统一功能处理(切面、切点、连接点、通知)

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;JavaEE进阶 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录 前…

教学场景下的AI数字人,可视化语音交互

玩了Midjourney&#xff0c;感慨AI太强大了&#xff0c;设计师已哭晕~~ AI数字人 教学场景下的AI数字人&#xff0c;能实现什么&#xff1f; 图&#xff1a;AI数字人 图&#xff1a;AI数字人 个性化学习支持 根据学生的个人需求和学习风格&#xff0c;提供个性化的学习支持和…

(赠书活动第2期)Java生日快乐,“不读此生遗憾”的Java开发必备书单

Java诞生日&#xff0c;推荐Java“此生错过必遗憾”系列书单 Java28岁了&#xff0c;当打之年&#xff0c;并且还会打很多年。 为即将或正在使用Java的你推荐Java“此生错过必遗憾”系列书单。看看你还缺哪本&#xff1f;请补齐。优惠购书链接就在文中&#xff0c;拿好不谢。 …

【权限提升】Linux Kernel 权限提升漏洞 (CVE-2023-32233)

文章目录 前言声明一、漏洞描述二、影响版本三、本地复现四、修复方案 前言 Linux Netfilter 是一个在 Linux 内核中的网络数据包处理框架&#xff0c;也称作 iptables&#xff0c;它可以通过各种规则和过滤器&#xff0c;基于数据包的来源、目标地址、协议类型、端口号等信息…

小程序技术给统一门户的建设带来新的构想

统一门户的发展可以追溯到20世纪90年代初期&#xff0c;当时的企业和组织开始意识到信息技术可以用于整合和管理各种分散的应用程序和服务。随着互联网的普及和Web 2.0技术的兴起&#xff0c;统一门户的发展迅速加速。 在早期&#xff0c;统一门户主要采用定制化开发的方式实现…

数据可视化-Canvas

Canvas Canvas API 主要聚焦于 2D 图形。当然也可以使用<canvas>元素对象的 WebGL API 来绘制 2D 和 3D 图形&#xff0c;可以用于动画、游戏画面、数据可视化、图片编辑以及实时视频处理。 Canvas非常适合图像密集型的游戏开发&#xff0c;适合频繁重绘许多的对象。能…

opencv膨胀腐蚀

OpenCV 是一个开源的计算机视觉库&#xff0c;它包含了许多图像处理的功能&#xff0c;其中膨胀和腐蚀是两种常用的形态学操作。 膨胀&#xff08;Dilation&#xff09;&#xff1a;膨胀操作是将图像中的高亮区域&#xff08;白色像素&#xff09;扩张&#xff0c;从而填充低亮…

火车票和机票已支持数电票,泛微齐业成提供数电票全流程管理方案

数电票已经成为趋势 01扩大全面数字化的电子发票试点范围 2023年以来&#xff0c;河南、深圳等多省市税务局发布《关于开展全面数字化的电子发票试点工作的公告》&#xff0c;进一步扩大了全面数字化的电子发票试点范围&#xff0c;在政府公告、文件描述中&#xff0c;“数电…

轻松提高SketchUp技能的15个简单技巧

SketchUp一直是设计界有名的3d建模软件之一&#xff0c;其直观的工作工具、开源库和无数的插件使 SketchUp 易于使用。通常&#xff0c;它被用来让孩子们接触建筑。其用户友好的界面使其成为初学者的绝佳应用程序。它包含一系列功能&#xff0c;能够以高效和突出的方式为学生和…

雪花算法工具类介绍

简介 雪花 &#xff08;SnowFlake &#xff09;算法是一种分布式唯一ID生成算法&#xff0c;可以生成全局唯一的ID标识符&#xff0c;就像自然界中雪花一般没有相同的雪花。它的核心思想是将一个64位的整数分成4部分&#xff0c;分别是&#xff1a; 1位标识符&#xff1a;即最…

关于ERP系统,你可能不知道的10件事

谈到ERP系统&#xff0c;大多数人只是考虑ERP日常管理的核心功能&#xff0c;即财务、销售、采购、库存、生产和分销。保持对这些关键领域的控制对任何企业的成功都是不可或缺的。但这些只是冰山一角&#xff0c;如果深入挖掘ERP系统&#xff0c;你可能会惊讶于它的其他功能。以…

vue3 - 【完整源码】实现容器用鼠标拖曳功能,将容器 “限制在指定范围内“ 鼠标拖拽移动并拿到横纵坐标(详细示例源码及注释,一键复制开箱即用)

效果图 在vue3网页项目中,实现将一个容器设置为鼠标可拖动拖曳效果(并限制在边界内不可拖出去),并且拖拽时自动获取横纵坐标以及相关的事件,基础的示例可自定义为任何你想要的效果。 你可以直接下方效果图的示例源代码,配合详细的原理描述及代码注释保证可用!稍微改改就…

SIEM(安全信息与事件管理)的重要性及 Log360 的卓越功能

摘要&#xff1a;随着网络安全威胁的不断增加&#xff0c;企业和组织对于安全信息与事件管理&#xff08;SIEM&#xff09;解决方案的需求日益迫切。本文将重点介绍 SIEM 的重要性&#xff0c;并详细探讨 ManageEngine 公司旗下的 Log360 解决方案所提供的卓越功能和优势。 引…