当前位置: 首页 > backend >正文

matlab使用教程(73)—指定绘图颜色

        MATLAB® 使用一组默认颜色创建绘图。使用默认颜色创建的不同绘图将呈现清晰一致的外观。您也可以按需求自定义颜色。许多绘图函数都有用于自定义颜色的输入参量,如 c 或 colorspec。这些函数返回的对象通常具有控制颜色属性。参量和属性的名称可以不同,但它们接受的值通常遵循一种通用模式。一旦熟悉了该模式,您就可以使用它来修改各种绘图。

        以下示例使用 bar 和 scatter 函数来演示自定义颜色整体方法。有关特定绘图函数的有效颜色值的完整列表,请参考该函数的文档。

1.颜色值的类型

        有以下几种颜色值:

  • 颜色名称或短名称 - 指定颜色名称,例如 "red" 或 "green"。短名称从颜色名称中指定字母,例如 "r" 或 "g"

  • RGB 三元组 - 通过指定一个三元素行向量来创建自定义颜色,该向量的元素是颜色中红、绿、蓝分量的强度。强度必须处于范围 [0,1] 中。例如,您可以用 [1 0.5 0.8]来指定粉红色。

    控制颜色的某些函数参量并不接受 RGB 三元组,但控制颜色对象属性通常接受。

  • 十六进制颜色代码 - 通过以下方式创建一个自定义颜色:指定一个字符串或字符向量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0 到 F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80" 和 "#f80" 都指定相同的橙色色调。

    某些控制颜色的函数参量不接受十六进制颜色代码,但您可以使用与对象属性对应的名称-值参量来指定十六进制颜色代码。例如,scatter(x,y,sz,"MarkerFaceColor","#FF8800") 将散点图中的标记颜色设置为橙色。

        下表列出了所有有效的颜色名称和短名称,以及对应的 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan""c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

        以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。这些颜色没有与之相关联名称。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

2.指定条形图的颜色

        通过调用 bar 函数并将可选的 color 参量指定为 "red",创建一个红色条形图。以 b 形式返回条形对象,以便以后可以自定义图的其他方面。

b = bar(1:10,"red");

Figure contains an axes object. The axes object contains an object of type bar.

        现在,通过将 FaceColor 和 EdgeColor 属性设置为十六进制颜色代码 "#80B3FF",将条形图填充颜色和轮廓颜色更改为浅蓝色。

        在 R2019a 之前,指定 RGB 三元组,而不是十六进制颜色代码。例如,b.FaceColor = [0.5 0.7 1]

b.FaceColor = "#80B3FF";
b.EdgeColor = "#80B3FF";

Figure contains an axes object. The axes object contains an object of type bar.

3.指定散点图中的标记颜色

        创建随机数散点图。将标记大小指定为 75 磅,并使用名称-值参量指定标记轮廓和填充颜色。MarkerEdgeColor 属性控制轮廓颜色,而 MarkerFaceColor 属性控制填充颜色。

x = rand(1,100);
y = rand(1,100);
scatter(x,y,75,"MarkerEdgeColor","b", ..."MarkerFaceColor",[0 0.7 0.7])

Figure contains an axes object. The axes object contains an object of type scatter.

4.指定一系列绘图中的颜色

        创建一系列绘图有两种方式:

  • 多次调用一个绘图函数,并使用 hold 函数来保留坐标区的内容。

  • 将一个包含多个数据序列的矩阵传递给绘图函数。plot 函数始终接受矩阵输入,许多其他绘图函数也支持矩阵输入。

        要为上述方法中的任一方法指定颜色,请使用一个输出参量调用所需的绘图函数,以便可以访问各个绘图对象。然后在要更改的绘图对象上设置属性。

        例如,创建一个包含 100 磅的填充标记的散点图。使用输出参量 s1 调用 scatter 函数。调用 hold 函数以保留坐标区的内容,然后使用输出参量 s2 和 s3 再调用两次 scatter 函数。变量 s1s2 和 s3 是 Scatter 对象。

figure
x = 1:5;
s1 = scatter(x,[6 3 9 10 7],100,"filled");
hold on
s2 = scatter(x,[16 13 19 20 17],100,"filled");
s3 = scatter(x,[26 23 29 33 27],100,"filled");
hold off

Figure contains an axes object. The axes object contains 3 objects of type scatter.

        将第二个 Scatter 对象的颜色更改为紫色。

s2.MarkerFaceColor = [0.7 0 1];

Figure contains an axes object. The axes object contains 3 objects of type scatter.

    scatter 函数还支持矩阵输入(从 R2021a 开始提供),因此您可以通过传递矩阵并返回对象向量来创建相同的绘图。

figure
x = 1:5;
y = [6 3 9 10 7; 16 13 19 20 17; 26 23 29 33 27];
s = scatter(x,y,100,"filled");

Figure contains an axes object. The axes object contains 3 objects of type scatter.

        在这种情况下,要更改第二个数据序列的颜色,请通过对 s 进行索引来访问第二个 Scatter 对象。

s(2).MarkerFaceColor = [0.7 0 1];

Figure contains an axes object. The axes object contains 3 objects of type scatter.

http://www.xdnf.cn/news/11395.html

相关文章:

  • 【PDF报表】 Jasper Report入门学习
  • 数据库的三范式
  • 程序员都能当黑客吗?IT男、码农和程序猿有啥区别?
  • Aircrack-ng实战案例
  • 【PostgreSQL】postgresql | linux安装postgresql
  • ZFS-128bit文件系统
  • Java中生成随机数的4种方式!
  • JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
  • 一、.netcore的开发环境与安装
  • win10系统重装(超简单)
  • go标准库strings — 字符串操作
  • 【Linux】认识Linux下的编译器gcc/g++ | 认识动静态库
  • SUSE Linux下安装Quartus的详细过程及编程示例
  • java timezone_详解Java中的时区类TimeZone的用法
  • 2024年鸿蒙最新谷歌开源Fuchsia OS,对标鸿蒙取代 Android?,面试篇
  • 耦合性(或称“耦合度”)
  • JavaScript零基础入门 10:JavaScript中的正则表达式
  • 如何使用js对图像进行压缩
  • Thanos 和 VictoriaMetrics 之间的深入比较:性能和差异
  • 探索H5游戏开发的新境界:Egret EUI Lab
  • COBOL语言介绍并推荐入门书籍(10本)
  • 大文件上传如何做断点续传
  • SSH框架简介
  • 什么是 Active Directory?
  • Java下载的流程和步骤
  • 最新RSA加密解密算法原理以及实现_rsa简介及源码实现,2024年最新还没吃透内存缓存LruCache实现原理的看这篇文章
  • 【分享】什么是分卷压缩文件?
  • linux基础之虚拟机及系统的安装
  • ASCII码对照表(包括十六进制、十进制和字符)
  • 什么是VOS?vos网络电话系统搭建