現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
Hi, if k is 7, then colors for legends are repeating for each leg. How can I generate different color for each value in plot? ( different color or type of legend). Or it is possible to make for leg1 different colors with -b, for leg2 the same colors like for leg1 but with -ro.
This is my code:
for k=1:7;
leg1{k}=sprintf('speed_%d',k);
leg2{k}=sprintf('acceler_%d',k);
end
for k=1:7
leg3{k}=sprintf('distance_%d',k);
end
figure
plot(t',speed,t',acceler_vet,t',distance);
legend = legend([leg1,leg2,leg3]);
Please for help
採用された回答
Image Analyst
2013 年 3 月 26 日
See my ColorOrder demo. You can get more colors.
% Unless you specify the 'Color' property when you plot,
% plots are plotted according to the 'ColorOrder' property of the axes.
% This demo shows how you can change the default color order of plots.
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables.
workspace; % Make sure the workspace panel is showing.
fontSize = 18;
% Make 20 plots, with 25 data points in each plot.
numberOfDataSets = 20;
x = 1:25;
y = rand(numberOfDataSets, length(x));
% These y would all be on top of each other.
% Separate the plots vertically.
offsets = repmat((1:numberOfDataSets)', [1, length(x)]);
y = y + offsets;
% Get the initial set of default plot colors.
initialColorOrder = get(gca,'ColorOrder') % Initial
% See what the colors look like when plotted:
subplot(2, 1, 1);
plot(x,y, 'LineWidth', 3);
grid on;
caption = sprintf('%d plots with the Initial Default Color Order (Note the repeating colors)', numberOfDataSets);
title(caption, 'FontSize', fontSize);
xlabel('X', 'FontSize', fontSize);
ylabel('Y', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]); % Maximize figure.
% Give a name to the title bar.
set(gcf,'name','Image Analysis Demo','numbertitle','off')
choice = menu('Which ColorOrder do you want?', 'jet', 'random', 'hsv', 'hot', 'cool', 'spring', 'summer',...
'autumn', 'winter', 'lines', 'gray', 'bone', 'copper', 'pink');
% Make a new axes:
subplot(2, 1, 2);
% Create a new colormap that will define the new default color order property.
switch choice
case 1
newDefaultColors = jet(numberOfDataSets);
case 2
newDefaultColors = rand(numberOfDataSets, 3);
case 3
newDefaultColors = hsv(numberOfDataSets);
case 4
newDefaultColors = hot(numberOfDataSets);
case 5
newDefaultColors = cool(numberOfDataSets);
case 6
newDefaultColors = spring(numberOfDataSets);
case 7
newDefaultColors = summer(numberOfDataSets);
case 8
newDefaultColors = autumn(numberOfDataSets);
case 9
newDefaultColors = winter(numberOfDataSets);
case 10
newDefaultColors = lines(numberOfDataSets);
case 11
newDefaultColors = gray(numberOfDataSets);
case 12
newDefaultColors = bone(numberOfDataSets);
case 13
newDefaultColors = copper(numberOfDataSets);
otherwise
newDefaultColors = pink(numberOfDataSets);
end
% Note: You can build your own custom order if you want,
% just make up a array with numberOfDataSets rows and 3 columns
% where each element is in the range 0-1.
% Apply the new default colors to the current axes.
set(gca, 'ColorOrder', newDefaultColors, 'NextPlot', 'replacechildren');
% Now get the new set of default plot colors.
% Verify it changed by printing out the new default color set to the command window.
newColorOrder = get(gca,'ColorOrder')
% Now plot the datasets with the changed default colors.
plot(x,y, 'LineWidth', 3);
grid on;
caption = sprintf('%d plots with the New Default Color Order', numberOfDataSets);
title(caption, 'FontSize', fontSize);
xlabel('X', 'FontSize', fontSize);
ylabel('Y', 'FontSize', fontSize);
msgbox('Done with ColorOrder demo!');
8 件のコメント
john
2013 年 3 月 26 日
definition of leg1, leg2, leg3 have to be after your code?
Image Analyst
2013 年 3 月 26 日
No, sprintf() does not need to be after my code, but calling legend() needs to be, because legend() takes the current color order into account when it puts up the colored legend items.
john
2013 年 3 月 27 日
Great, it works. It is possible to make for leg1 different colors with '-.b', for leg2 the same colors like for leg1 but with '-ro'.
thanks
Image Analyst
2013 年 3 月 27 日
You can override the default colors (determined by the ColorOrder property) by putting a color into each call of plot(). So you can plot leg1 in blue with 'b-.'
plot(x,yLeg1,'b-.');
and leg2 in red:
plot(x,yLeg2,'r-.');
Or any other color you want to specify:
plot(x,yLeg3,'-.', 'Color', [.2, .1, .4]);
If no color is specified it will use the default color from the ColorOrder property.
john
2013 年 3 月 27 日
thanks, good job
john
2013 年 4 月 10 日
Hi,
I have in one plot more curves.
If I press pushbutton1, then I need to show off legend1 and also curve1. If I press again pushbutton1, then I need to show on legend1 and also curve1.
If I press pushbutton2, then I need to show off legend2 and also curve2.If I press pushbutton2, then I need to show on legend2 and also curve2. . . .
Please, can you help me
Image Analyst
2013 年 4 月 10 日
I suggest that the easiest way is to just call "cla reset" to erase everything, and just plot the desired plots.
john
2013 年 4 月 11 日
If I use this code:
for i=1:7
handles.speed(:,i)=(s/t)';
plot(t',handles.speed);
cla(handles.speed(:,1),'reset');
end;
I gor error Bad handle
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で 2-D and 3-D Plots についてさらに検索
タグ
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
