Changing plot colors directly in .fig files

조회 수: 18 (최근 30일)
Devang Bipinchandra Lad
Devang Bipinchandra Lad 2022년 5월 3일
댓글: Devang Bipinchandra Lad 2022년 5월 3일
Suppose if I have a plot saved in a folder. I open It with using openfig command and now want to change the colour of two lines (scatter plot as well as dotted line both want to change to red) present in the plot (image shown below). How can it be done? I m trying findall (which finds there exits two lines) and then try to change the color for on the line but it does not change the color.
The comment lines don't particularly work and offer the error is - "Assigning to 2 elements using a simple assignment statement is not supported. Consider using comma-separated list assignment."- if lineC.Color is directly used.
%% Calling the figure from the folder (numb = 4 represent whole frame)
for i=1:length(percent)
fig_psdm = openfig(strcat(num2str(percent(i)),'_percent\BF_alpha_0\PSDM_plot\PSDM_',num2str(numb),'.fig'),"visible");
name_ax(i) = gca; %saving axis layout of the openfig
% lineC = findall(fig_psdm,'Type','line')
% jj = lineC
% lineC(1,1).Color = 'red'
title(Tit(i)) %title for each subplot or titled
grid off
xlim([0.01 1])
ylim([0.1 10])
subtitle(subt(i)) %subtitle = equation of line
end
hold off
  댓글 수: 1
Devang Bipinchandra Lad
Devang Bipinchandra Lad 2022년 5월 3일
It can be done mannually on the figure but I want to change using the MATLAB code.

댓글을 달려면 로그인하십시오.

채택된 답변

Fangjun Jiang
Fangjun Jiang 2022년 5월 3일
Use findobj() to find the line, set the color to be [Red Green Blue]
>> b=findobj(a,'type','line')
b =
Line with properties:
Color: [0 0.4470 0.7410]
LineStyle: '-'
LineWidth: 0.5000
Marker: 'none'
MarkerSize: 6
MarkerFaceColor: 'none'
XData: [1×100 double]
YData: [1×100 double]
ZData: [1×0 double]
b.Color=[1 0 0]
  댓글 수: 4
Fangjun Jiang
Fangjun Jiang 2022년 5월 3일
It looks like you can do this if setting the same color
set(LineC,'Color',[1 0 0])
Devang Bipinchandra Lad
Devang Bipinchandra Lad 2022년 5월 3일
Ok Thanks. Will also keep this in reference.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Devang Bipinchandra Lad
Devang Bipinchandra Lad 2022년 5월 3일
for i=1:length(percent)
fig_psdm = openfig(strcat(num2str(percent(i)),'_percent\BF_alpha_0\PSDM_plot\PSDM_',num2str(numb),'.fig'),"visible");
name_ax(i) = gca; %saving axis layout of the openfig
lineC1 = findobj(fig_psdm,'type','line');
lineC1(2).Color = [1 0.5 0.5];
lineC2 = findobj(fig_psdm,'Type','scatter');
lineC2(1).MarkerEdgeColor = [1 0.5 0.5];
% name_ax.LineWidth = 4;
title(Tit(i)) %title for each subplot or titled
grid off
xlim([0.01 1])
ylim([0.1 10])
subtitle(subt(i)) %subtitle = equation of line
end
hold off
This above code finally code for the figure to cahnge the color for both line and scatter plot.

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by