有没有人知道如何使用不同于预设颜色的自定义颜色进行绘图的命令或方法,比如我想使用自己定义的颜色而不是b、g、r、c、m、y、k?
谢谢。
使用带有 ColorSpec
三元组的 Color
属性:
plot(x, y, 'Color', [0.5, 1.0, 0.0], 'LineStyle', '--')
这里的向量包含介于0.0
和1.0
之间的RGB值。有关此内容的更多信息,请参阅Lineseries和ColorSpec文档条目。
ColorOrder: m-by-3 RGB值矩阵
用于多线图的颜色。定义了plot和plot3函数用于给每条线着色的颜色。如果您没有指定线条颜色,这些函数将通过ColorOrder属性循环获取每条线的颜色。要获取当前的ColorOrder属性值(可能在启动时设置),请使用以下命令:
get(gca,'ColorOrder') 请注意,如果轴的NextPlot属性为replace(默认值),则高级函数如plot会在确定要使用的颜色之前重置ColorOrder属性。如果您想让MATLAB使用与默认值不同的ColorOrder,请将NextPlot设置为replacechildren。您还可以指定自己的默认ColorOrder。
综上所述,这意味着您需要执行以下命令:
figure();
axis();
set(gca, 'colororder', <color matrix>, 'nextplot', 'replacechildren');
plot(x,y);
set
之前,您是否使用 axis()
创建了一个轴对象? - Isaacaxis
呼叫来创建一个轴对象,以便你可以调用 set
。在 Matlab 中,你不需要使用 '()'。如果要让它适用于你的第二个图形,你需要再次调用 axis
和 set
。如果想将代码格式化为代码,请使用反引号(`)括起来。 - Isaacset(0,'DefaultAxesColorOrder',[1, 0.5, 0.753;0.5, 0.5, 1;1, 1, 0.753])
可以在下面的绘图中永久地设置颜色,而不需要每次在绘图之前使用set
命令。 - kit我曾经遇到过与MATLAB提供的有限预设颜色集相同的问题。因此,我在我的网站上创建了这个页面,您可以从大量非标准颜色调色板中进行选择,并将颜色代码直接粘贴到剪贴板中:
cmap = colormap('hot'); cmap(k,:)
从颜色映射中获取颜色k
。如果你的颜色值范围是0到255,只需除以255即可获得正确的范围。 - You