【python】matplotlib画图常用功能汇总

目录:

    • 一、matplotlib画图风格
    • 二、matplotlib图像尺寸和保存分辨率
    • 三、matplotlib子图相关功能
      • 创建子图:
      • 绘制子图:
      • 设置子图属性:
      • 调整布局:
      • 示例代码:
    • 四、matplotlib字体设置
      • 字体族和字体的区别
      • 字体选择和设置
        • 1. Matplotlib中的字体设置
        • 2. 使用中文字体
        • 3. 使用自定义字体
        • 4. 查看系统自带字体
        • 5. 其他字体属性
      • 示例代码:

一、matplotlib画图风格

在 Matplotlib 中,可以通过设置不同的绘图风格(style)来自定义图形的外观。Matplotlib有一些预定义的风格,也允许您创建自定义风格。

以下是一些基本的设置绘图风格的方法:

  1. 使用预定义的风格:
    Matplotlib提供了一些预定义的绘图风格,如 ‘seaborn’, ‘ggplot’, ‘fivethirtyeight’ 等。您可以使用以下代码之一设置风格:

    import matplotlib.pyplot as plt# 使用预定义的风格
    plt.style.use('seaborn')  # 也可以使用其他风格,如 'ggplot', 'fivethirtyeight' 等
    
  2. 自定义风格:
    如果您希望创建自定义风格,可以使用plt.style.context,在此上下文中设置参数:

    import matplotlib.pyplot as plt# 创建自定义风格
    with plt.style.context({'axes.edgecolor': 'gray','axes.labelcolor': 'black','xtick.color': 'black','ytick.color': 'black','xtick.direction': 'in','ytick.direction': 'in','grid.color': 'lightgray','grid.linestyle': '--','figure.facecolor': 'white','figure.edgecolor': 'white',
    }):# 在此上下文中绘制图形,图形将使用上述自定义风格plt.plot(x, y)plt.xlabel('X-axis Label')plt.ylabel('Y-axis Label')plt.title('Custom Style Plot')# 图形在此上下文之外将使用默认风格
    
  3. 查看可用的预定义风格:
    如果想了解可用的预定义风格,可以使用以下代码:

    available_styles = plt.style.available
    print("Available styles:", available_styles)
    

    从中选择一个适合您的绘图的风格。


二、matplotlib图像尺寸和保存分辨率

  1. 图像的默认设置

    • 'figure.figsize': 图像的默认尺寸,例如[6.4, 4.8]
    • 'figure.dpi': 图像分辨率(每英寸点数),默认为100
      在 Matplotlib 中,您可以通过设置图形的大小和分辨率来调整图像的尺寸和清晰度。以下是一些方法:
  2. 设置图形大小:
    您可以使用 plt.figure(figsize=(width, height)) 来设置图形的大小。例如:

    import matplotlib.pyplot as plt# 设置图形大小为宽度10英寸,高度6英寸
    plt.figure(figsize=(10, 6))# 绘制图形
    plt.plot(x, y)# 显示图形
    plt.show()
    
  3. 设置分辨率:
    您可以使用 plt.savefig 方法保存图形(savefig语句要在show之前,否则图像show之后图像销毁无法保存),并通过 dpi 参数设置分辨率。例如:

    import matplotlib.pyplot as plt# 绘制图形
    plt.plot(x, y)# 保存图形并设置分辨率为300dpi
    plt.savefig('output_plot.png', dpi=300)# 显示图形(可选)
    plt.show()
    

    在上述例子中,图形将以300dpi的分辨率保存为PNG文件。您可以调整 dpi 的值以获得所需的分辨率。

  4. 综合使用大小和分辨率:
    如果需要在显示和保存时分别设置大小和分辨率,可以结合使用 plt.figureplt.savefig

    import matplotlib.pyplot as plt# 设置图形大小为宽度10英寸,高度6英寸
    plt.figure(figsize=(10, 6))# 绘制图形
    plt.plot(x, y)# 保存图形并设置分辨率为300dpi
    plt.savefig('output_plot.png', dpi=300)# 显示图形
    plt.show()
    

    在这个例子中,图形在显示时具有指定的大小,但保存时具有指定的分辨率。

根据您的具体需求,可以灵活调整图形的大小和分辨率。


三、matplotlib子图相关功能

Matplotlib中的子图(subplots)功能使您能够在同一图形上绘制多个子图。以下是子图相关功能的一些用法汇总:

创建子图:

  1. 使用 plt.subplots 创建多个子图:

    import matplotlib.pyplot as pltfig, axes = plt.subplots(nrows=2, ncols=2)
    

    在此示例中,fig 是整个图形对象,axes 是一个包含所有子图的2x2数组。

  2. 使用 plt.subplot 创建单个子图:

    import matplotlib.pyplot as pltplt.subplot(2, 2, 1)  # 创建一个2x2布局的图形,选择第一个子图
    

绘制子图:

  1. 在指定子图上绘制图形:

    axes[0, 0].plot(x1, y1)
    axes[0, 1].scatter(x2, y2)
    

    在此示例中,axes[0, 0] 表示第一行第一列的子图。

设置子图属性:

  1. 设置子图标题:

    axes[0, 0].set_title('Title for Subplot 1')
    
  2. 设置子图标签:

    axes[1, 0].set_xlabel('X-axis Label')
    axes[1, 0].set_ylabel('Y-axis Label')
    
  3. 设置图形标题:

    fig.suptitle('Overall Title for the Figure', fontsize=16)
    

调整布局:

  1. 调整子图之间的间距:

    plt.subplots_adjust(wspace=0.5, hspace=0.3)
    

    这将调整子图之间的水平(wspace)和垂直(hspace)间距。

示例代码:

import matplotlib.pyplot as plt
import numpy as np# 生成示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 创建2x2的子图布局
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8))# 在子图上绘制图形
axes[0, 0].plot(x, y1)
axes[0, 1].scatter(x, y2)
axes[1, 0].hist(y1, bins=20, color='green', alpha=0.7)
axes[1, 1].barh(x, y2, color='orange', alpha=0.7)# 设置子图属性
axes[0, 0].set_title('Sine Curve')
axes[0, 1].set_title('Scatter Plot')
axes[1, 0].set_title('Histogram')
axes[1, 1].set_title('Horizontal Bar Chart')# 设置图形标题
fig.suptitle('Multiple Subplots Example', fontsize=16)# 调整布局
plt.subplots_adjust(wspace=0.5, hspace=0.3)# 显示图形
plt.show()

在这里插入图片描述

这个示例代码创建了一个包含四个子图的图形,并展示了如何在子图上绘制不同类型的图形。根据您的需求,可以进一步调整子图的属性和布局。


四、matplotlib字体设置

字体族和字体的区别

在Matplotlib和其他文本处理库中,字体族(font family)和字体(font)是两个相关但不同的概念。

  1. 字体族(Font Family):

    • 字体族指的是一组具有相似设计风格的字体。这组字体通常由不同的字体样式组成,包括正常(regular)、粗体(bold)、斜体(italic)等。
    • 字体族用于指定文本的整体外观风格,而不仅仅是单一字体样式。常见的字体族包括"serif"(衬线字体,如Times New Roman)、“sans-serif”(无衬线字体,如Arial)、“monospace”(等宽字体,如Courier New)等。
  2. 字体(Font):

    • 字体是字体族中的具体样式的实例,它定义了字符的外观、形状和大小。
    • 例如,“serif” 字体族可能包含具体的字体样式,如"Times New Roman"、"Georgia"等。每个具体的字体都属于特定的字体族,并具有独特的设计特征。

在Matplotlib中,通过指定字体族,您可以选择使用该族中的任何具体字体样式。字体族的选择通常受到个人偏好、图形的整体风格以及文本在不同设备上的可读性等因素的影响。

字体选择和设置

1. Matplotlib中的字体设置

Matplotlib提供了一些用于设置字体的方法,包括全局字体设置和特定元素的字体设置。

import matplotlib.pyplot as plt# 全局字体设置
plt.rcParams['font.family'] = 'sans-serif'  # 指定字体家族
plt.rcParams['font.sans-serif'] = ['Arial']  # 指定具体字体# 也可以直接在绘图时指定字体
plt.title('Title', fontdict={'fontname': 'Arial', 'fontsize': 16})
plt.xlabel('X Label', fontdict={'fontname': 'Arial', 'fontsize': 12})
plt.ylabel('Y Label', fontdict={'fontname': 'Arial', 'fontsize': 12})# 显示图形
plt.show()
2. 使用中文字体

对于中文字体,可以使用支持中文的字体,如SimHei、Microsoft YaHei等。

plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体或其他中文字体
3. 使用自定义字体

可以下载并使用第三方的中文字体文件,然后指定路径。

plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['Path/To/Your/CustomChineseFont.ttf']  # 替换为自定义中文字体文件的路径
4. 查看系统自带字体
from matplotlib import font_managerfor f in font_manager.fontManager.ttflist:print(f.name)

以上方法应该能够解决大多数中文字体无法显示的问题。根据具体需求,选择适合的中文字体并进行相应的设置。

5. 其他字体属性

plt.rcParams是一个字典,用于设置Matplotlib的默认配置参数。以下是一些常见的plt.rcParams属性,用于定制Matplotlib的外观和行为:

  1. 字体相关设置

    • 'font.family': 字体家族,默认为'sans-serif'
    • 'font.sans-serif': 无衬线字体的具体名称,默认为'DejaVu Sans'
    • 'font.serif': 有衬线字体的具体名称,默认为'DejaVu Serif'
    • 'font.monospace': 等宽字体的具体名称,默认为'DejaVu Sans Mono'
    • 'font.size': 字体大小,默认为10
  2. 线条和标记的默认设置

    • 'lines.linewidth': 线条宽度,默认为1.5
    • 'lines.linestyle': 线条风格,默认为'-'
    • 'lines.marker': 数据点标记,默认为'None'
  3. 刻度相关设置

    • 'xtick.labelsize': X轴刻度标签字体大小,默认为'medium'
    • 'ytick.labelsize': Y轴刻度标签字体大小,默认为'medium'
    • 'xtick.direction': X轴刻度方向,默认为'out'
    • 'ytick.direction': Y轴刻度方向,默认为'out'
  4. 文本相关设置

    • 'text.color': 默认文本颜色,默认为'black'
  5. 坐标轴范围

    • 'axes.xmargin''axes.ymargin': 控制数据显示的空白边缘比例,默认为0.05

等等。你可以通过plt.rcParams.keys()来查看所有的默认配置参数。
在这里插入图片描述
定制这些参数可以让你在绘图时不必每次都手动设置相同的属性,提高了代码的可读性和重复使用性。

示例代码:

import matplotlib.pyplot as pltplt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = 'Times New Roman'
plt.rcParams['font.size'] = 20
plt.rcParams['font.weight'] = "bold"
plt.rcParams['font.style'] = "italic"
plt.rcParams['text.color'] = "red"
plt.rcParams['xtick.color'] = "purple"plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.title('Sample chart')
plt.xlabel('X-axis', color="blue")
plt.ylabel('Y-axis')# 或者在特定的文本上设置字体属性
plt.text(1, 29, 'Hello, Matplotlib!', fontsize=16, fontweight='bold', fontstyle = 'oblique', color='green')plt.show()

在这里插入图片描述

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

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

相关文章

亚马逊云科技 WAF 部署小指南(五):在客户端集成 Amazon WAF SDK 抵御 DDoS 攻击...

方案介绍 在 WAF 部署小指南(一)中,我们了解了 Amazon WAF 的原理,并通过创建 WEB ACL 和托管规则防护常见的攻击。也了解了通过创建自定义规则在 HTTP 请求到达应用之前判断是阻断还是允许该请求。在 Amazon WAF 自定义规则中&am…

水果音乐编曲软件 FL Studio v21.2.2.3914 中文免费版(附中文设置教程)

FL studio21中文别名水果编曲软件,是一款全能的音乐制作软件,包括编曲、录音、剪辑和混音等诸多功能,让你的电脑编程一个全能的录音室,它为您提供了一个集成的开发环境,使用起来非常简单有效,您的工作会变得…

【书生·浦语】大模型实战营——第四课作业

教程文档:https://github.com/InternLM/tutorial/blob/main/xtuner/self.md 基础作业需要构建数据集,微调模型,让其明白自己的弟位(OvO!) 微调环境准备 进入开发机后,先bash,再创…

列表解析与快速排序

排序是在对文本、数值等数据进行操作时常用的功能,本文介绍两种常用的排序方式,借此学习列表解析,并巩固递归算法。 1 选择排序 说到排序,以数值为例,肯定涉及到值大小的对比,选择排序即通过依次在子集中…

蓝桥杯 python 第二题 数列排序

这里给出一种解法 """ # 错的 n int(input()) dp[int(i) for i in input().split(" ")] dp.sort() print(" ".join(str(i) for i in dp)) """#这个是对的 num int(input())l list(map(int, input().split()))l.sort()pr…

AI文本生图模型Stable Diffusion部署教程

本文基于CentOS8进行Stable Diffusion开源框架部署. 1. DNS配置(但是今天出现了偶尔无法下载问题) 为了加速Github访问,我在本机配置如下 (sd) [rootshenjian stable-diffusion-webui]# cat /etc/hosts 127.0.0.1 shenjian localhost localhost.localdomain localhost4 loca…

修改权限控制(chmod命令、chown命令)

1.chmod命令 功能:修改文件、文件夹权限(注意,只有文件、文件夹的所属用户或root用户可以修改) 语法:chmod [-R] 权限 参数 权限,要设置的权限,比如755,表示:rwxr-xr-x…

【面试突击】生产部署面试实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

如何从电脑找回/恢复误删除的照片

按 Shift Delete 以后会后悔吗?想要恢复已删除的照片吗?好吧,如果是这样的话,那么您来对地方了。在本文中,我们将讨论如何从 PC 中检索已删除的文件。 自从摄影的概念被曝光以来,人们就对它着迷。早期的照…

Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Windows Server 2012 R2部署项目

JDK 下载JDK 1.直接官网下载:http://www.oracle.com/; 2.我用的是1.8,阿里云盘分享地址:https://www.aliyundrive.com/s/u4V9x1AHL2r 安装jdk 双击安装点击下一步如果不改变路径就一直下一步 安装完成直接点击关闭即可&#x…

GPT Store,是否会成为下一个App Store?

经历了一场风波后,原本计划推出的GPT Store终于成功上线。OpenAI在北京时间1月11日推出了GPT Store,被广泛视为类似于苹果的"App Store",为人工智能应用生态系统迈出了重要一步。然而,OpenAI要想将GPT Store打造成苹果般…

一、docker的安装与踩坑

目录 一、安装docker(centos7安装docker)1.安装环境前期准备2.参考官网安装前准备3.参考官网安装步骤开始安装docker4.运行首个容器 二、安装一些软件的踩坑1.启动docker踩坑2.安装mysql踩坑3.罕见问题 三、关于我的虚拟机 一、安装docker(ce…

如何再造宇宙厂所有APP?

本文内容,纯属十年老架构师杜撰,切勿照着实操,可能会给你带来几十亿的流量,怕你的服务器扛不住。 1. 破音 前端用uniapp,花800买个短视频应用模板,后端用golang支持高并发, 数据库用图数据库加elastic se…

ArchVizPRO Interior Vol.8 URP

ArchVizPRO Interior Vol.8 URP是一个在URP中制作的建筑可视化项目。这是一个完全可导航的现代公寓,包括一个带开放式厨房的客厅、休息区、两间卧室和两间浴室。从头开始构建每一个细节,这个室内有130多件家具和道具、自定义着色器和4K纹理。所有家具和道具都非常详细,可以在…

基于 LangChain+大模型,我打造一款自己的LLM应用

本文共计1.7w字,梳理不易,喜欢点赞、收藏、关注。需要技术交流,可以加入我们 目录 通俗易懂讲解大模型系列技术交流一、LangChain是什么二、LangChain核心组件2.1 Models2.2 Indexes2.2.1 Document Loaders2.2.2 Text Splitters2.2.3 Vectors…

网络安全B模块(笔记详解)- MYSQL信息收集

MYSQL信息收集 1.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL03进行服务信息扫描渗透测试(使用工具Nmap,使用必须要使用的参数),并将该操作显示结果中数据库版本信息作为Flag提交; Flag:MySQL 5.5.12 2.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL0…

【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析

基于MATLAB的多模光纤模场分布的仿真分析 一、引言 (1)多模光纤的概念 多模光纤(MMF)是一种具有较大纤芯直径的光纤结构,其核心直径通常在10-50微米范围内。与单模光纤(SMF)相比,…

Linux QT以太网配置及相关知识

Linux QT以太网配置及相关知识 平台和内容概述安装Qt Creator设计用户界面编辑源代码自定义LineEdit创建槽函数以太网逻辑功能实现静态配置ui逻辑:功能概述代码实现DNS退出程序输入框中的ip规范保存数据和读取数据构建文件编译运行平台注意点开机自动配置以太网总结平台和内容…

FreeRtos Queue (一)

本篇主要讲队列的数据结构和初始化 一、队列的数据结构 二、队列初始化完是什么样子的 队列初始化的函数调用关系:xQueueGenericCreate->prvInitialiseNewQueue->xQueueGenericReset 所以,最终初始化完的队列是这样的 假设申请了4个消息体&…