无法在 MATLAB 图中更改线条颜色

Posted

技术标签:

【中文标题】无法在 MATLAB 图中更改线条颜色【英文标题】:Cannot change line color in MATLAB plot 【发布时间】:2016-05-04 22:37:32 【问题描述】:

无论我在这个 MATLAB 绘图上指定什么线条的颜色,生成的绘图都会显示这种自动着色:

这是我使用的代码:

figure 

plot(cumsum(sign([y_pred]).*tst_y)/std(sign([y_pred]).*tst_y), 'g')  
xlabel('Time'); 
ylabel('Cumulative Returns (%)');          
title('Neural Network Model Returns')
hold on 

plot(cumsum(tst_y)/std(tst_y),'r')

hold off

我尝试了不同的方法来指定颜色,甚至尝试在图形编辑器中编辑线条颜色。知道如何使这些线条具有不同的颜色吗?我用的是 Matlab 2016a 试用版

【问题讨论】:

我无法重现这种行为。这种着色对我来说似乎很不寻常。一个简单的figure, plot([1 3 2],'r') 在您的系统上是否有同样的问题? 这可能是使用试用版的神器,以确保您不会在未支付产品费用的情况下发布结果数据。 @AlexanderBüse 在尝试像您建议的那样进行简单绘图时没有发生 - 但是我通过将线宽从(必须是)默认值 0.5 增加到1.5。这样做之后,我写的颜色规格会显示在图表上,而之前什么都不会改变!我需要快速修复,所以没有尝试更好地理解问题 - 有什么想法吗? 不,抱歉,我没有任何想法,为什么会这样。我认为@Suever 的评论是一个很好的提示。 【参考方案1】:

我也无法复制您的问题。也许 y_pred 或 tst_y 中的数据不是简单的双类(也许是神经网络工具箱特有的东西?),因此在 matlab 中具有不同定义的绘图函数。

否则你应该可以试试

figure 

pl=plot(cumsum(sign([y_pred]).*tst_y)/std(sign([y_pred]).*tst_y));
pl.Color='g';
xlabel('Time'); 
ylabel('Cumulative Returns (%)');          
title('Neural Network Model Returns')
hold on 

pl=plot(cumsum(tst_y)/std(tst_y));
pl.Color='r';

hold off

【讨论】:

您也可以运行whos y_pred tst_y 来查看它们是否属于某种奇怪的数据类型?

以上是关于无法在 MATLAB 图中更改线条颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 UIDatePicker 的线条颜色

如何在ggplot中更改不同数据集的线条颜色并具有图例

如何更改拾轮器线条的颜色和粗细? (斯威夫特用户界面)

MATLAB,填充两组数据之间的区域,一个图中的线条

Matplotlib简单的不同颜色线图[重复]

如何在企业架构师白板图中更改矩形元素的颜色