查看: 429|回复: 1|关注: 0
打印 上一主题 下一主题

[话题讨论] MATLAB几种设置颜色的方法

[复制链接]

MATLAB 基础讨论
版块优秀回答者

17

主题

218

帖子

27

最佳答案
  • 关注者: 120
跳转到指定楼层
1#
发表于 2019-8-11 12:59:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前阵子,知识星球里有一位叫“π大星”的朋友交了两份GUI实战训练的报告。其中有一部分文字是关于GUI按钮的背景颜色设置,我觉得还蛮有意思的。

所以今天打算分享一下为什么我觉得这份报告有意思,顺带着聊一聊这些年我是如何与颜色斗智斗勇的。

01

用MATLAB已经有十多年了,不过开始对颜色有些挑剔还是最近几年的事。

最开始的几年,颜色设置的问题,无非就是plot曲线的时候,这应该是每个MATLAB用户都会碰到的情况。


这个问题很好解决,在网上很快就能找到答案。对于初学MATLAB的朋友,这里我推荐两份文档。


一份是MATLAB中文论坛的一篇帖子,主题是“Matlab中plot函数一共能调用多少种颜色?”。这篇帖子截止目前已经有将近35万的阅读量,足以见得有非常多朋友搜索过这个问题。


另一份是MATLAB Help自带的介绍,通过命令窗口输入doc plot就可以了解这方面的应用,还有相应的例子可以用来加深理解。


回到颜色设置这个问题上来,通过plot([1,2],[3,4],'r')就能将目标曲线设置成红色,其中'r'是红色的缩写。


除此之外,还有

颜色? ? ? ? 字母
绿? ? ? ? g
蓝? ? ? ? b
蓝绿? ? ? ? c
紫红? ? ? ? m
黄? ? ? ? y
黑? ? ? ? k
白? ? ? ? w

02

通过字母设置颜色这种方法,比较便捷,不过存在的问题是,颜色数量较少,并且个别颜色我实在欣赏不来,比如那发着光的黄和绿。

虽然心有不满,但是平时还是尽量避免多条曲线画在一张图上,于是在之后的很长一段时间内,只靠着红色和蓝色,咬咬牙,这么多年也就过来了,直到后来开始做GUI工具。

创建GUI,界面默认的背景是灰色,有一阵子,我很不喜欢这个背景颜色,总想换成白色。后来实在受不了了,就上网查,发现可以通过RGB数值去定义界面的颜色,比如设置窗体为白色

figure('Color',[1,1,1])

RGB颜色定义的方式,适用在任何颜色定义的问题上,包括plot曲线的,画图注释text的颜色定义等等,具体的用法,在前面推荐的两个文档中也都有介绍。

至于RGB如何定义数值实现想要的颜色,网上有不少材料,通过搜索关键词MATLAB+颜色表。


事实上,这张表很长,远不止我截取的部分。


颜色表的优点是,很全,几乎任何颜色应有尽有,而颜色表的缺点也是,太多了,多到让我难以选择。


上次碰到颜色选择障碍,还是给媳妇买口红的时候,口红看起来都红的差不多啊。


03

人总是这么矛盾,字母设置颜色,嫌8种颜色太少,RGB设置颜色,嫌颜色表太长。


其实保留几种比较常用的颜色RGB值就可以应对平时工作学习中的需求。


再后来就是这两年的事了。


在过去写一个GUI,只要需求明确了,几乎可以每两天写一个工具。


这些工具只是给自己用的,所以控件的布局,也都只是控件+String的形式,哪管他颜色、图标和快捷键,甚至好多比较严重的Bug都不在意,心里清楚哪哪有坑,别去踩就行。


不过这两年,偶尔会分享一些自己写的GUI给大家使用。


字如其人,GUI也同样如此,于是我要比之前多花上3倍的时间去修复Bug,优化界面,提高用户友好度。审美在不在线另说,做GUI我一点也不随便。


曾经介绍过我在开发HaoFind的时候,设计了一个开机界面,是参考的Google的Logo。




这下我再没办法去拿着颜色表和Logo的颜色做对比了,于是我给自己写了一个提取颜色RGB值的工具,叫做HaoColor。


很高兴,Hao系列的小工具又迎来了一位新成员。


HaoColor的使用很简单,点击Get Color的按钮之后,将鼠标移到目标颜色上,3秒之后将会显示目标颜色的RGB值。



其中有一个很贴心的功能是,RGB值在显示的同时,已经复制了,不需要再去做额外的复制操作,可以直接在m脚本中进行粘贴。


这个功能其实在HaoTemplate工具中就已经使用了。



当时在HaoTemplate发布后,有朋友留言说,这么多色块,得做多少个按钮啊。


其实我在写这个工具的时候,就已经意识到这个问题了,所以我一个按钮都没做,直接放了一张Excel颜色表上去,用鼠标去读取颜色。


读取颜色的功能也很容易实现,用的是MATLAB截屏的功能,只截取鼠标所在的一个像素的图片,读取颜色数值。


04

前面聊的是这些年来我是如何处理颜色设置这个问题的。接下来聊一聊“π大星”的报告。

GUI实战的第二次练习是复现windows的科学计算器,其中一个要求是,按钮颜色的设置。


这位朋友的处理方式是,通过uisetcolor这个命令,调出MATLAB自带的调色板,选取所需的颜色,返回RGB的值。这个命令同样可以集成在GUI中,进行颜色的选取。


如果只是从功能上来说,我个人认为,HaoColor的功能会比自带的调色板稍强一些,颜色选取的自由度更大。


不过我觉得很有意思的地方,一个是调色板对话框中控件的弧度设置,这是接下来一段时间我很想去研究的。


另一个有意思的是,在uisetcolor所在的文件夹,发现了不少其他有趣的功能,比如字体的设置



除此之外还有很多其他工具,像之前一直使用的选取文件功能uigetfile,也在这个文件夹中。

由于之前只关注到自己要开发的GUI,忽略了这个文件夹中的其他有意思的功能,这也是在接下来一段时间想要去了解的,并且希望能够运用到以往的工具中去。



以上就是今天关于MATLAB颜色设置的分享,希望对大家有所帮助,同时也欢迎大家在评论区进行讨论。

最后关于HaoColor,有需要的朋友,可以在公众号后台回复“HaoColor”获取这个工具。


作者介绍 | 打浦桥程序员
汽车行业工程师
目前在德国从事系统工程
公众号“打浦桥程序员
和你一起用MATLAB的角度看世界

公众号 & 知乎: 打浦桥程序员
汽车行业工程师,目前在德国从事汽车系统工程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表