Невозможно изменить цвет линии на графике MATLAB

Независимо от того, что я укажу в качестве цветов моих линий на этом графике 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.


person Stevie Kvothe    schedule 04.05.2016    source источник
comment
Я не могу воспроизвести это поведение. Мне этот тип окрашивания кажется довольно необычным. У простого figure, plot([1 3 2],'r') есть такая же проблема в вашей системе?   -  person Alexander Büse    schedule 05.05.2016
comment
Это может быть артефактом использования пробной версии, чтобы гарантировать, что вы не опубликуете полученные цифры, не заплатив за продукт.   -  person Suever    schedule 05.05.2016
comment
@AlexanderBüse этого не происходило при попытке построить простой график, подобный предложенному вами, однако я решил это для своего графика, увеличив ширину линии с (должно быть) значения по умолчанию от 0,5 до 1,5. После этого написанные мной цветовые характеристики будут отображаться на графике, тогда как раньше ничего не менялось! Мне нужно было быстрое решение, поэтому я не стал экспериментировать, чтобы лучше понять проблему - есть идеи?   -  person Stevie Kvothe    schedule 05.05.2016
comment
Нет, извините, у меня нет никаких идей, почему это может быть. Я думаю, что комментарий @Suever - хороший намек.   -  person Alexander Büse    schedule 06.05.2016


Ответы (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
person Skogsv    schedule 28.07.2016
comment
вы также можете запустить whos y_pred tst_y, чтобы увидеть, имеют ли они какой-то странный тип данных? - person Skogsv; 28.07.2016