菜鸟笔记-14Python绘图颜色使用

Python中绘图主要依赖于各种库,其中matplotlib是最常用且功能强大的一个。在matplotlib中,你可以使用各种颜色来表示不同的数据点、线条或填充区域。下面我将详细介绍如何在Python中使用matplotlib来设置绘图颜色,并给出具体的例子。

14.1颜色的表示方式

  1. 颜色名称:直接使用英文颜色名称,如redbluegreenyellow等。
  2. 十六进制颜色代码:以#开头,后面跟着6个十六进制数字,表示RGB颜色。例如,#FF0000表示红色。
  3. RGB元组:一个包含三个介于0到1之间浮点数的元组,分别代表红色、绿色和蓝色的强度。例如,(1.0, 0.0, 0.0)表示红色。
  4. RGBA元组:与RGB元组类似,但多了一个表示透明度的值(Alpha),范围也是0到1。例如,(1.0, 0.0, 0.0, 0.5)表示半透明的红色。

14.2举例说明 

14.2.1图像呈现

14.2.2代码

import numpy as np  # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt  # 导入matplotlib的绘图模块,用于可视化
from matplotlib import rcParams  # 从matplotlib中导入rcParams,它用于处理matplotlib的配置参数

# 定义一个字典config,其中包含字体、大小和其他相关的配置参数
config = {"font.family": 'serif', "font.size": 10.5, "mathtext.fontset": 'stix', "font.serif": ['SimSun']}
rcParams.update(config)  # 使用config字典中的配置参数更新rcParams
plt.rcParams['axes.unicode_minus'] = False  # 运行配置参数总的轴(axes)正常显示正负号(minus)


# 创建一些数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建一个新的图形和坐标轴
fig, ax = plt.subplots()

# 使用颜色名称绘制第一条线
ax.plot(x, y1, color='red', label='sin(x)')

# 使用十六进制颜色代码绘制第二条线
ax.plot(x, y2, color='#00FF00', label='cos(x)')

# 使用RGB元组绘制第三条线(这里还是红色)
ax.plot(x, y1 + 0.5, color=(1.0, 0.0, 0.0), linestyle='--', label='sin(x) + 0.5')

# 使用RGBA元组绘制第四条线(半透明的蓝色)
ax.plot(x, y2 - 0.5, color=(0.0, 0.0, 1.0, 0.5), linestyle='-.', label='cos(x) - 0.5')

# 添加图例
ax.legend()

# 显示图形
plt.show()

14.3直接颜色

定义:直接颜色通常指的是通过颜色的名称来指定颜色,如“red”、“blue”、“green”等。

14.3.1绘图颜色罗列

以下是按照中文-英文的顺序罗列的所有英文颜色名称:

  1. 爱丽丝蓝 - aliceblue
  2. 古董白 - antiquewhite
  3. 水绿色 - aqua
  4. 绿松石色 - aquamarine
  5. 天蓝色 - azure
  6. 米色 - beige
  7. 桔黄色 - bisque
  8. 黑色 - black
  9. 漂白杏色 - blanchedalmond
  10. 蓝色 - blue
  11. 蓝紫色 - blueviolet
  12. 棕色 - brown
  13. 栗色 - burlywood
  14. 军蓝色 - cadetblue
  15. 黄绿色 - chartreuse
  16. 巧克力色 - chocolate
  17. 珊瑚色 - coral
  18. 矢车菊蓝 - cornflowerblue
  19. 米绸色 - cornsilk
  20. 深红色 - crimson
  21. 青色 - cyan
  22. 深蓝色 - darkblue
  23. 深青色 - darkcyan
  24. 深金黄色 - darkgoldenrod
  25. 深灰色 - darkgray
  26. 深绿色 - darkgreen
  27. 深灰色(同darkgray) - darkgrey
  28. 深卡其色 - darkkhaki
  29. 深洋红色 - darkmagenta
  30. 深橄榄绿 - darkolivegreen
  31. 深桔黄色 - darkorange
  32. 深兰花色 - darkorchid
  33. 深红色 - darkred
  34. 深肉色 - darksalmon
  35. 深海绿色 - darkseagreen
  36. 深石板蓝色 - darkslateblue
  37. 深石板灰色 - darkslategray
  38. 深石板灰色(同darkslategray) - darkslategrey
  39. 深青绿色 - darkturquoise
  40. 深紫色 - darkviolet
  41. 深粉红色 - deeppink
  42. 深天蓝色 - deepskyblue
  43. 暗灰色 - dimgray
  44. 暗灰色(同dimgray) - dimgrey
  45. 道奇蓝 - dodgerblue
  46. 砖红色 - firebrick
  47. 花白色 - floralwhite
  48. 森林绿 - forestgreen
  49. 紫红色 - fuchsia
  50. 淡黄色 - gainsboro
  51. 幽灵白 - ghostwhite
  52. 金色 - gold
  53. 金黄色 - goldenrod
  54. 灰色 - gray
  55. 灰色(同gray) - grey
  56. 绿色 - green
  57. 黄绿色 - greenyellow
  58. 蜜色 - honeydew
  59. 热粉红色 - hotpink
  60. 印度红 - indianred
  61. 靛青色 - indigo
  62. 象牙色 - ivory
  63. 卡其色 - khaki
  64. 淡紫色 - lavender
  65. 淡紫红 - lavenderblush
  66. 草绿色 - lawngreen
  67. 柠檬绸色 - lemonchiffon
  68. 淡蓝色 - lightblue
  69. 淡珊瑚色 - lightcoral
  70. 淡青色 - lightcyan
  71. 浅金黄色 - lightgoldenrodyellow
  72. 淡灰色 - lightgray
  73. 淡绿色 - lightgreen
  74. 淡灰色(同lightgray) - lightgrey
  75. 淡粉红色 - lightpink
  76. 淡肉色 - lightsalmon
  77. 淡海绿色 - lightseagreen
  78. 淡天蓝色 - lightskyblue
  79. 淡石板灰色 - lightslategray
  80. 淡石板灰色(同lightslategray) - lightslategrey
  81. 淡钢蓝色 - lightsteelblue
  82. 淡黄色 - lightyellow
  83. 酸橙色 - lime
  84. 酸橙绿色 - limegreen
  85. 亚麻色 - linen
  86. 洋红色 - magenta
  87. 栗色 - maroon
  88. 中等宝石绿 - mediumaquamarine
  89. 中等蓝色 - mediumblue
  90. 中兰花色 - mediumorchid
  91. 中紫色 - mediumpurple
  92. 中海绿色 - mediumseagreen
  93. 中暗蓝色 - mediumslateblue
  94. 春绿色 - mediumspringgreen
  95. 中青绿色 - mediumturquoise
  96. 中紫罗兰红色 - mediumvioletred
  97. 午夜蓝 - midnightblue
  98. 薄荷奶油色 - mintcream

14.3.2颜色对比 

14.3.2.1图像呈现

14.3.2.2代码
import numpy as np  # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt  # 导入matplotlib的绘图模块,用于可视化
from matplotlib import rcParams  # 从matplotlib中导入rcParams,它用于处理matplotlib的配置参数

# 定义一个字典config,其中包含字体、大小和其他相关的配置参数
config = {"font.family": 'serif', "font.size": 10.5, "mathtext.fontset": 'stix', "font.serif": ['SimSun']}
rcParams.update(config)  # 使用config字典中的配置参数更新rcParams
plt.rcParams['axes.unicode_minus'] = False  # 运行配置参数总的轴(axes)正常显示正负号(minus)
# 选择一部分颜色名称进行对比
colors = ['red', 'green', 'blue', 'yellow', 'cyan', 'magenta', 'black', 'white']

# 创建数据
N = len(colors)
ind = np.arange(N)  # 条形图的x位置
width = 0.35  # 条形图的宽度

# 创建条形图
fig, ax = plt.subplots()
rects1 = ax.bar(ind, [1] * N, width, color=colors)

# 添加一些文本,用于解释每个条形图
ax.set_ylabel('Value')
ax.set_title('色彩对比')
ax.set_xticks(ind)
ax.set_xticklabels(colors)

# 自动调整x轴标签的位置
ax.set_xticklabels(colors, rotation=45)

# 显示图形
plt.show()

14.4十六进制颜色代码

定义:十六进制颜色代码是一种使用十六进制数表示颜色的方式,通常以#RRGGBB(不带透明度)或#RRGGBBAA(带透明度)的形式出现,其中RR、GG、BB分别代表红色、绿色和蓝色的强度,AA代表透明度。

14.4.1常见颜色代码

  1. 白色 - #FFFFFF
  2. 黑色 - #000000
  3. 红色 - #FF0000
  4. 绿色 - #00FF00
  5. 蓝色 - #0000FF
  6. 黄色 - #FFFF00
  7. 紫色 - #800080
  8. 灰色 - #808080
  9. 银色 - #C0C0C0
  10. 粉红色 - #FFC0CB
  11. 橙色 - #FFA500
  12. 棕色 - #A52A2A
  13. 深蓝色 - #00008B
  14. 天蓝色 - #ADD8E6
  15. 青色 - #00FFFF
  16. 海蓝色 - #4682B4
  17. 橄榄色 - #808000
  18. 桃红色 - #FFB6C1
  19. 金色 - #FFD700
  20. 巧克力色 - #C15500

14.4.2 图像呈现

14.4.3绘图代码 

import numpy as np  # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt  # 导入matplotlib的绘图模块,用于可视化
from matplotlib import rcParams  # 从matplotlib中导入rcParams,它用于处理matplotlib的配置参数

# 定义一个字典config,其中包含字体、大小和其他相关的配置参数
config = {"font.family": 'serif', "font.size": 10.5, "mathtext.fontset": 'stix', "font.serif": ['SimSun']}
rcParams.update(config)  # 使用config字典中的配置参数更新rcParams
plt.rcParams['axes.unicode_minus'] = False  # 运行配置参数总的轴(axes)正常显示正负号(minus)
import matplotlib.pyplot as plt
import numpy as np

# 创建一些示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 使用十六进制颜色代码绘制线
plt.plot(x, y, color='#FF0000')  # 红色线

# 使用另一个十六进制颜色代码绘制散点
plt.scatter(x[::10], y[::10], color='#00FF00')  # 绿色散点

# 设置图表标题和坐标轴标签
plt.title('使用十六进制颜色代码绘图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 显示图表
plt.show()

使用十六进制颜色代码的好处是它们提供了一种直观且精确的方式来指定颜色,特别是当你需要使用特定的品牌颜色或设计颜色时。

14.5RGB元组

定义:RGB元组是一种使用三个整数(范围通常为0-255)分别表示红色、绿色和蓝色通道强度的颜色表示方式。这三个值可以任意组合,形成各种不同的颜色。通过调整RGB元组中的值,你可以得到几乎无限多种颜色。每个颜色都可以通过调整红、绿、蓝三种颜色的强度来精确控制。在某些绘图库(如Matplotlib)中,也可能使用0-1范围内的浮点数表示。

14.5.1常见颜色

  • 红色:(255, 0, 0)
  • 绿色:(0, 255, 0)
  • 蓝色:(0, 0, 255)
  • 黑色:(0, 0, 0)
  • 白色:(255, 255, 255)
  • 黄色:(255, 255, 0)
  • 青色:(0, 255, 255)
  • 紫色:(128, 0, 128)
  • 灰色(50%):(128, 128, 128)
  • 棕色:(165, 42, 42)
  • 粉红色:(255, 192, 203)
  • 橙色:(255, 165, 0)

14.5.2图像呈现

14.5.3绘图代码 

import numpy as np  # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt  # 导入matplotlib的绘图模块,用于可视化
from matplotlib import rcParams  # 从matplotlib中导入rcParams,它用于处理matplotlib的配置参数

# 定义一个字典config,其中包含字体、大小和其他相关的配置参数
config = {"font.family": 'serif', "font.size": 10.5, "mathtext.fontset": 'stix', "font.serif": ['SimSun']}
rcParams.update(config)  # 使用config字典中的配置参数更新rcParams
plt.rcParams['axes.unicode_minus'] = False  # 运行配置参数总的轴(axes)正常显示正负号(minus)


# 创建一些示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 使用RGB元组绘制线(值范围必须在0到1之间)
plt.plot(x, y, color=(1, 0, 0))  # 红色线,RGB值转换为0-1范围

# 使用另一个RGB元组绘制散点(值范围必须在0到1之间)
plt.scatter(x[::10], y[::10], color=(0, 1, 0))  # 绿色散点,RGB值转换为0-1范围

# 设置图表标题和坐标轴标签
plt.title('使用RGB元组绘图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 显示图表
plt.show()

14.6RGBA元组

定义:RGBA元组是RGB元组的扩展,增加了一个表示透明度的通道(A)。由四个整数值组成,分别代表红色、绿色、蓝色和透明度(Alpha)的强度。这三个颜色通道(RGB)的值范围通常是0到255,而透明度通道(A)的值范围通常是0(完全透明)到1(完全不透明)或者0到255。

14.6.1常见颜色

# 红色,完全不透明  
rgba_255_red = (255, 0, 0, 255)  
  
# 绿色,50%透明  
rgba_255_green_half_transparent = (0, 255, 0, 128)  
  
# 蓝色,完全透明  
rgba_255_blue_transparent = (0, 0, 255, 0)

14.6.2图像呈现

14.6.3绘图代码

import numpy as np  # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt  # 导入matplotlib的绘图模块,用于可视化
from matplotlib import rcParams  # 从matplotlib中导入rcParams,它用于处理matplotlib的配置参数

# 定义一个字典config,其中包含字体、大小和其他相关的配置参数
config = {"font.family": 'serif', "font.size": 10.5, "mathtext.fontset": 'stix', "font.serif": ['SimSun']}
rcParams.update(config)  # 使用config字典中的配置参数更新rcParams
plt.rcParams['axes.unicode_minus'] = False  # 运行配置参数总的轴(axes)正常显示正负号(minus)

# 创建一些示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 定义两个带有透明度的RGBA元组
# 注意:Matplotlib中,RGBA元组的Alpha值应该是0到1之间
color1 = (0.1, 0.2, 0.5, 0.7)  # 蓝色调,70%不透明
color2 = (0.9, 0.5, 0.1, 0.3)  # 橙色调,30%不透明

# 绘制带有透明度的线
plt.plot(x, y1, color=color1, label='Sin(x) with alpha=0.7')
plt.plot(x, y2, color=color2, label='Cos(x) with alpha=0.3')

# 设置图例
plt.legend()

# 设置图表标题和坐标轴标签
plt.title('使用RGBA元组进行科研绘图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 显示网格
plt.grid(True)

# 显示图表
plt.show()

14.7绘图对比

  1. 直接颜色
    • 优点:易于理解和使用,无需进行任何转换。
    • 缺点:颜色名称的集合有限,可能无法精确匹配所需的颜色。此外,不同的绘图库或软件可能对相同的颜色名称有不同的解释,导致颜色不一致。
    • 适用场景:在需要快速设置大致颜色且对颜色精度要求不高的情况下使用。
  2. 十六进制颜色代码
    • 优点:能够精确地表示颜色,且在不同平台和软件中的解释较为一致。此外,十六进制颜色代码在网页设计和图形编辑中广泛使用,便于与其他设计元素匹配。
    • 缺点:相对于RGB或RGBA元组,十六进制颜色代码可能需要一些额外的转换工作。
    • 适用场景:在需要精确匹配颜色且与其他设计元素协调时使用,尤其在网页或图形编辑领域。
  3. RGB元组
    • 优点:能够精确地表示颜色,且在数值计算和处理方面较为方便。此外,RGB元组在许多编程语言和图形库中都有很好的支持。
    • 缺点:与十六进制颜色代码相比,RGB元组可能不太直观,需要一定的转换工作。此外,在某些情况下,可能需要额外处理以匹配绘图库或软件的颜色范围要求。
    • 适用场景:在编程和数值计算中需要精确控制颜色时使用,尤其在需要与其他颜色空间(如HSV、CMYK等)进行转换时。
  4. RGBA元组
    • 优点:能够精确地表示颜色及其透明度,使得绘图更加灵活和多样。通过调整透明度,可以实现叠加、渐变等效果,增强图形的表现力。
    • 缺点:与RGB元组相比,RGBA元组需要额外的处理来管理透明度通道。此外,在某些不支持透明度的绘图库或软件中,可能需要额外的转换或调整。
    • 适用场景:在需要表示颜色及其透明度时使用,尤其在需要实现叠加、渐变或透明效果时。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML5:七天学会基础动画网页10

继续介绍3D转换: 3D转换:rotate3d 方法与说明 rrotateX(angle)otate3d(x,y,z,angle[角度]) 3D转换,正常取值0/1,0代表当前轴线不进行旋转,1反之,例:rotate3d(1,1,1,30deg),代表三个轴线都要旋转30度 rotate3d(0…

.text .data .bss .stack 和 heap

.text .data .bss .stack 和 heap 1.1 代码->可执行文件1.2 ELF可执行文件的结构1.3 内存区域1.4 各段在内存中的位置 1.1 代码->可执行文件 一个程序从代码到可执行文件的过程,包括 预处理、编译、汇编,链接。可执行文件有多重类型,有…

深入解读可视化运维的内容、领域、价值和系统搭建

大家好,我是贝格前端工场,接触过很多可视化运维项目,包括IT、电力、物流、生产制造等,本文系统总结一下可视化运维相关知识,老规矩别忘了关注转发,有事请私信。 一、可视化运维定义 可视化运维是指通过可视…

寻找完全平方数——浮点数陷阱

【题目描述】 输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)。 【解析】 一、问题分析 从问题出发,题目要求输出的是满足一定条件的数。数在计算机中是要占存储空间的,要在计算机中表示一个…

linux 查看打开使用了哪些端口

你可以使用 netstat 命令来查看Linux系统中正在使用的端口。例如,要查看所有正在使用的TCP和UDP端口,你可以运行: sudo netstat -tulpn如果你只想查看所有正在使用的TCP端口,你可以运行: sudo netstat -tpln 如果你只…

滴滴一面:Keepalived+Nginx高可用,如何实现IP跳跃?(1)

尼恩说在前面 HashMap的工作原理是目前java面试问的较为常见的问题之一,在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格,遇到很多很重要的面试…

蓝桥杯-List集合

目录 List集合实例化 List集合实例化步骤 常用方法 ArrayList方法 1:add(Object element) 2:size() 3:get(int index) 4:isEmpty() 5:contains(Object o) 6:remove(int index) 总结ArrayList list集合的特点…

Elasticsearch从入门到精通-03基本语法学习

Elasticsearch从入门到精通-03基本语法学习 👏作者简介:大家好,我是程序员行走的鱼 📖 本篇主要介绍和大家一块学习一下ES基本语法,主要包括索引管理、文档管理、映射管理等内容 1.1 了解Restful ES对数据进行增、删、改、查是以…

多线程-线程池原子性并发工具类

1.线程池 1.线程状态 虚拟机中线程的六种状态 新建状态(NEW) --创建线程 就绪状态(RUNNABLE) --start方法 阻塞状态(BLOCKED) --无法获得锁对象 等待状态(WAITING) …

MySQL学习Day28——锁

一、概述: 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等)需要保证这个数据在任何时刻最多只有一个线程在访问,保…

蓝桥杯简单题,公司名称

题目链接&#xff08;需要登录&#xff09; #include <iostream> #include <cstring> #include <algorithm> using namespace std; bool lanqiao(string str,int len){ sort(str.begin(),str.end());//对str按照ascii排序if(str.find("Laainoq")s…

HTML静态网页成品作业(HTML+CSS)——安徽宣笔设计制作(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 &#x1f3f7;️想要…

Linux系统——web服务拓展练习

目录 一、实验环境搭建 1. Centos 7-5——Client 2. Centos 7-1——网关服务器 3. Centos 7-2——Web1 4. Centos 7-3——Web2 5. Centos 7-4——Nginx 二、在Nginx服务器上搭建LNMP服务&#xff0c;并且能够对外提供Discuz论坛服务&#xff1b;在Web1、Web2服务器上搭建…

springboot255基于spring boot的疫情信息管理系统

疫情信息管理系统的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定疫情信息管理系统…

Unity Shader实现UI流光效果

效果&#xff1a; shader Shader "UI/Unlit/Flowlight" {Properties{[PerRendererData] _MainTex("Sprite Texture", 2D) "white" {}_Color("Tint", Color) (1, 1, 1, 1)[MaterialToggle] PixelSnap("Pixel snap", float…

【数据分享】2000-2022年全国1km分辨率的逐日PM10栅格数据

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年全国范围逐日的PM2.5栅格数据和2013-2022年全国范围逐日SO2栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;。 本次我们给大家带来的是2000-2022年全国范围的逐日的PM10栅…

吴恩达deeplearning.ai:倾斜数据集的误差指标精确率、召回率

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 文章目录 倾斜数据集的误差指标罕见病预测精确率和召回率 精确率和召回率的权衡精确率和召回率的矛盾关系 F1算法 倾斜数据集的误差指标 在神经网络中&#xff0c;如果你的数据集中正例和负…

giffgaff怎么充值?giffgaff怎么续费?

-性价比高&#xff1a;0月租&#xff0c;免费接收短信&#xff0c;充值一次&#xff0c;接码可以用20年以上&#xff08;仅需半年保号一次&#xff09;&#xff0c;可能是国内性价比最高的接码实体卡&#xff01;-安全&#xff1a;实体卡无须担心因号码被风控&#xff0c;还可以…

C语言:通讯录

目录 前言 1、通讯录框架&#xff0c;基本介绍 2、程序实现&#xff0c;步骤解释 2.1. 建立菜单 2.2. 主函数框架 2.3 前期工作 2.4 初始化通讯录函数&#xff1a;void InitContact(Contact* pc); 2.5 添加信息操作&#xff1a;void AddContact(Contact* pc); 2.6 显示…

Sublime Text 格式化Json文件 之 Pretty Json

需要使用到 Pretty Json插件。 一、安装方法 sublime 下&#xff0c;按快捷键 Comand control p&#xff0c; 输入install Package,然后回车 等几秒钟&#xff0c;加载启动进程完毕后弹出的页面中输入pretty json, 然后回车 等待几秒钟&#xff0c;可以查看Sublime 最下面的…