2012-07-21 126 views
5

没有人知道除了预设颜色(即b,g,r,c,m,y,k)之外,用不同颜色绘制的命令或方式是什么?我宁愿用我自己的自定义颜色而不是这些....自定义颜色的Matlab绘图

干杯

回答

12

使用Color财产与ColorSpec三重:这里

plot(x, y, 'Color', [0.5, 1.0, 0.0], 'LineStyle', '--') 

载体含有0.01.0之间的RGB值。文档条目LineseriesColorSpec有关于此的更多信息。

+1

谢谢你!我在哪里可以查找颜色图来决定在代码中输入0到1之间的数字?我搜索了Lineseries,ColorSpec和Colormap,但看不到我想要的。从像素图中选择的常用方式是大于1. – kit 2012-07-21 18:55:24

+0

@kit:如果您有色图(例如'hot'),IIRC则应使用'cmap = colormap'从色图获得色彩'k' ('热'); CMAP(K,:)'。如果你的颜色值在0到255之间,那么除以255得到正确的范围。 – You 2012-07-21 19:04:04

+0

非常感谢你。我明白你的意思了。良好的学习... – kit 2012-07-21 21:09:02

0

From the matlab docs:

ColorOrder:m乘3 RGB矩阵值

颜色使用多线图。定义绘图 和plot3函数用于绘制每条线的颜色。如果您没有用plot和plot3指定 线条颜色,则这些函数将循环显示ColorOrder属性中的每个线条的颜色。为了 获取当前ColorOrder,这可能会在启动过程中进行设置,让 属性值:

GET(GCA,“ColorOrder”)请注意,如果轴NextPlot属性是 替换(默认),高级别诸如在确定要使用的颜色之前重置 ColorOrder属性的功能。如果您想要 MATLAB使用与默认不同的ColorOrder,请将 NextPlot设置为replaceChildren。您也可以指定您自己的默认颜色指令 。

总之,这意味着你要的命令:

figure(); 
axis(); 
set(gca, 'colororder', <color matrix>, 'nextplot', 'replacechildren'); 
plot(x,y); 
+0

我得到了你的意思上设置什么颜色顺序。我试过以下命令。图 集(gca,'colororder',[1,0.5,0.753],'nextplot','replacechildren'); plot(x,y) figure plot(x,z) 我不知道为什么我会为第二个图像再次获取默认颜色,好像我没有正确使用nextplot并替换孩子 – kit 2012-07-21 21:26:36

+0

您是否创建了轴在调用'set'之前用'axis()'调用对象? – Isaac 2012-07-21 21:50:58

+0

是的,我现在添加,但仍然获得第二个情节的默认颜色。这是我的代码:figure(); axis(); (gca,'colororder',[1,0.5,0.753],'nextplot','replacechildren'); plot(x,y) figure plot(x,z)axis()是做什么的?我们为什么需要()?顺便说一下,我在这里粘贴matlab编码时弄得一团糟。在粘贴我的代码之前,我可以知道我需要添加什么命令,并像你一样适合灰色框吗?我是这类论坛的新用户。谢谢! – kit 2012-07-22 01:34:12