【Python学习记录】matplotlib绘图基本配置

news2024/11/26 5:26:29

✨ 博客主页:小小马车夫的主页
✨ 所属专栏:Python学习记录

请添加图片描述

文章目录

  • 前言
  • 1、设置颜色
  • 2、设置每个点marker
  • 3、设置标题、X轴、Y轴文字
  • 4、设置刻度
  • 5、同一图中画多条线、绘制图例
  • 6、设置图层顺序
  • 7、多个图的设置subplot
  • 8、保存图片
  • 总结


前言

matplotlib是python中绘图的一个库,它的数据可视化的功能十分强大,在机器学习中用的非常普遍,本文就对matplotlib绘图的基本配置作一个系统介绍。
首先,在作基本介绍之前,先看一下简单的例子,作为后续介绍的前导:

import nummpy as np
import matplotlib.pyplot as plt
X = np.arange(0, 12.1, 0.1)
Y = np.sin(X)
plt.plot(X, Y)

以下是绘图的效果:
matplotlib

1、设置颜色

plt.plot(X, Y, 'r')

说明:
r 参数, 是指颜色, 是红色red的缩写

以下是效果
matplotlib

plt.plot(X, Y, 'r-')

说明:
r- 线型为虚线

matplotllib

plt.plot(X, Y, 'r-:') 

说明:
r-: 线型为点虚线

matplotlib

能用的用法

plt.plot(X, Y, color='lime', linestyle='-')

说明:
color颜色
linestyle线型

2、设置每个点marker

plt.plot(X, Y, color='lime', linestyle='-', linewidth=2, \
        marker='v', markerfacecolor='red', markeredgecolor='orange',\
        markersize=6, markeredgewidth=2)

说明:
color 线条颜色
linestyle线条类型
linewidth线条宽度
marker 每个点形状
markerfacecolor每个点的颜色
markeredgecolor第个点边缘的颜色
markersize每个点的大小
markeredgewidth 每个点边框宽度

matplotlib

3、设置标题、X轴、Y轴文字

plt.plot(X, Y, color='lime', linestyle='', linewidth=2, \
        marker='v', markerfacecolor='red', markeredgecolor='orange',\
        markersize=6, markeredgewidth=2)
aix = plt.gca()
aix.set_title('Title', fontname='Arial', fontsize=16, weight='bold', color='red', style='italic')
aix.set_ylabel('Y Label', fontsize=12)
aix.set_xlabel('X Label', fontsize=12)

说明:
plt.gca 获取图表对象
set_title 设置主标题
set_ylabel 设置Y坐标标题
set_xlabel 设置X坐标标题

matplotlib

4、设置刻度

设置刻度要显示点

aix.set_xticks([0, 2, 5, 7, 11])

matplotlib

设置刻度指定点的标签

aix.set_xticklabels(['A', 'B', 'C', 'D', 'E'])

matplotlib

设置刻度线

aix.tick_params(axis='x', direction='out', color='blue', \
               length=10, width=1)
aix.tick_params(axis='y', direction='in', color='red', \
               length=10, width=2)

说明:
tick_params 设置刻度线
axis 取3个值:x y both, 分别代表x坐标,y坐标和xy坐标一起设置
direction 刻度线朝向,out 朝向坐标系外边,in朝向坐标系里边
color 刻度线的颜色
length 刻度线的长度
width 刻度线的宽度

matplotlib

5、同一图中画多条线、绘制图例

plt.plot(X, Y, color='lime', linestyle='', linewidth=2, \
        marker='v', markerfacecolor='red', markeredgecolor='orange',\
        markersize=6, markeredgewidth=2, label='sin1')
plt.plot(X+2, Y, label='sin2')
plt.legend(loc='best')

说明:
上述代码分别画了两条线,会显示一张图中。
label 线条的标签
legend 设置图例, loc为图例的位置

matplotlib
修改一下图例的位置

plt.legend(loc='lower left')

matplotlib

6、设置图层顺序

plt.plot(X, Y, color='lime', linestyle='', linewidth=2, \
        marker='v', markerfacecolor='red', markeredgecolor='orange',\
        markersize=6, markeredgewidth=2, label='sin1', zorder=2)
plt.plot(X+2, Y, label='sin2', zorder=1)

说明:
zorder图层顺序编号,值越小越靠上。

matplotlib

7、多个图的设置subplot

多个图显示同一个画面中,可用如下方法:

fig, ax = plt.subplots(2, 1)
ax[0].plot(X, Y, linewidth=5)
ax[1].plot(X+2, Y, linewidth=5, color='r')

说明:
subplots 创建一个包含2行1列的画布

matplotlib

8、保存图片

plt.figure(figsize=(8, 5))
plt.plot(X, Y, color='lime', linestyle='', linewidth=2, \
        marker='v', markerfacecolor='red', markeredgecolor='orange',\
        markersize=6, markeredgewidth=2, label='sin1', zorder=2)
aix = plt.gca()
aix.set_title('Title', fontname='Arial', fontsize=16, weight='bold', color='red', style='italic')
aix.set_ylabel('Y Label', fontsize=12)
aix.set_xlabel('X Label', fontsize=12)
aix.set_xticks([0, 2, 5, 7, 11])

aix.tick_params(axis='x', direction='out', color='blue', \
               length=10, width=1)
aix.tick_params(axis='y', direction='in', color='red', \
               length=10, width=2)

plt.plot(X+2, Y, label='sin2', zorder=1)
plt.legend(loc='lower left')
plt.savefig('1.png')

matplotlib

总结

以上就本文的所有内容了,简单总结一下吧。
主要介绍了matplotlib库绘图的基本设置,主要有颜色设置、点设置、标题设置、刻度设置、多个线条一个图、多个图一个画布以及保存图片等。


如果觉得有些帮助或觉得文章还不错,请关注一下博主,你的关注是我持续写作的动力。另外,如果有什么问题,可以在评论区留言,或者私信博主,博主看到后会第一时间进行回复。
【间歇性的努力和蒙混过日子,都是对之前努力的清零】
欢迎转载,转载请注明出处:https://blog.csdn.net/xxm524/article/details/128274894

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

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

相关文章

python中文编码json中文输出问题

python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 unicode 问题。首先简要介…

人机交互-广州DACAI触摸屏开发中遇到的一些(屏幕和编程)问题

目录 背景 一、屏幕相关 1、厂家给的指令集资料可能有错误,请以软件VisualTFT中的指令助手为准。 2、屏幕程序下载方式 3、SD卡文件格式问题 4、画面id的问题 巨坑!!! 5、子画面变暗的问题 6、 VisualTFT自带的键盘问题 …

【openGauss】一键编译openGauss3.1+dolphin,体验新增的mysql兼容特性

前言 前两天写了一篇openGauss3.1关于mysql的相关特性,但由于openGauss官网提供下载的版本还是9月30号第一次发布的版本,很多特性都还没合入,所以不少爱好者不能轻易体验到。 虽然openGauss已经提供了“一键式编译脚本”,但是还是得做一些前…

Linux系统下的常用文件目录指令

文件目录指令 pwd (Print Working Directory):显示当前工作目录的绝对路泾 ls (list) 基本语法:ls[选项][目录或是文件]常用选项 -a:显示当前目录所有的文件和目录,包括隐藏的。 -l:以列表的方式显示信息 cd (change directory) :切换到指定目录 基本语法:cd参数理…

5G无线技术基础自学系列 | 5G网络速率问题分析

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 前面介绍了接入性和移动性两类问题的处…

node.js+uni计算机毕设项目湖南工商大学财务信息查询小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

计网第三章.数据链路层—封装成帧、差错检测

以下是湖科大计算机网络公开课的笔记 1 . 数据链路层概述 1.1 一些概念 链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点 数据链路(Data Link) 是指实现通信协议的硬件和软件加到…

【自然语言处理】最大熵马尔可夫模型

有任何的书写错误、排版错误、概念错误等,希望大家包含指正。 由于这部分的参考资料比较少,网上大部分资料重复且不完整,对于一些关键计算没有推导,所以这里我主要讨论几篇论文和讲义。但是这些论文和讲义之间也有些许差别&#…

算法CPP时间复杂度

观察数据生成器可以发现对于每次操作均有 。 考虑将这些三元组想象成空间直角坐标系中 为对顶点的长方体。 将操作分成两部分,一部分是对 轴同时操作的,可以一开始就用前缀 统计完,将长方体变 成一个底面为阶梯状的直棱柱。另一部分是对 或…

【网络工程】9、实操-万达酒店综合项目(三)

接上篇《8、实操-万达酒店综合项目(三)》 之前我们按照项目要求进行模拟拓扑的构建实操,完成了办公区部分的网络配置,本篇我们来继续完成其他区域的网络配置。 一、总体架构情况 按照之前项目需求的拓扑图: 我们已经…

爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了

现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,本文主要讲述我们为什么选择Spring Cloud和它的技术概要。 为什么微服务架构需要Spring Cloud 简单来说&#x…

【C++初阶】list的模拟实现

文章目录list的介绍list的模拟实现成员变量Member functionsconstructordestructoroperatorIterators正向迭代器反向迭代器beginendrbeginrendModifierspush_frontpop_frontpush_backpop_backinserteraseclear完整版代码list.hreverse_iterator.htest.cpplist的介绍 list是STL…

Selenium自动化测试环境搭建及问题

一、前言 目标:环境搭建及测试 主要问题:浏览器闪退,路径不明确,语法弃用 二、环境搭建(自带python3.9以上) 2.1.1、下载谷歌浏览器驱动 https://registry.npmmirror.com/binary.html?pathchromedriver/&…

数据结构---A星寻路算法

A星寻路算法第一步第二步第三步第四步JAVA实现用于寻找有效路径的算法。定义俩个集合 OpenList:可到达的格子 CloseList:已到达的格子 每一个格子都具有F、G、H这3个属性 G:从起点走到当前格子的成本,也就是已经花费了多少步。H&a…

生产级部署 Python 脚本,崩溃可自启

今天介绍一个生产级的流程管理工具 PM2,通常我们说到 PM2 的时候,都是在说如何部署 Node.js 程序,但是实际上 PM2 很强大,不仅仅可以用来管理 Node.js,它还可以用来管理 Python、PHP、Ruby、perl 等等。 这里就以 Pyt…

看了下华为工资,我不加班了

周五快下班,我本来是想继续好好上班的。那时候是晚上8点左右,跟我一个华为的朋友聊天,聊完之后,我气得把电脑合上,拿上花了7万巨款买的车钥匙,头也不回的走到电梯口,按下了下楼的电梯按钮。-事情…

项目集成MybatisPlus

目录 1.MyBatisPlus介绍 1.1.为什么需要 1.2.MyBatisPlus简介 1.3.MybatisPlus特点 2.项目集成MybatisPlus 2.1.导入依赖 2.2.创建配置 2.3.代码生成主类GenteratorCode 2.4.Controller,Query模板 2.5.生成代码 2.6最终效果 1.MyBatisPlus介绍 1.1.为什么…

SQL优化篇:如何成为一位写优质SQL语句的绝顶高手

(Structured Query Language)标准结构化查询语言简称SQL,编写SQL语句是每位后端开发日常职责中,接触最多的一项工作,SQL是关系型数据库诞生的产物,无论是什么数据库,MySQL、Oracle、SQL Server、DB2、PgSQL....&#x…

JSP ssh网上商品拍卖系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh网上商品拍卖系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0…

个人收款的实现方案

最近出于个人需要折腾了一套微信免签支付的个人系统,下面介绍一下整体的一个实现方案 由于微信本身不提供免签的支付api,因此个人若想要实现免签支付,那么只能通过监听微信收款通知来实现了,因此整个系统的实现部分分为 收款服务端和监听客户端来实现 收款服务端实现 整个…