Legend entries all same color in Matlab 2015b
    10 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Madison Smith
 am 14 Sep. 2015
  
    
    
    
    
    Kommentiert: joebob
 am 16 Feb. 2017
            I just updated to Matlab 2015b, and the frustration has already begun.
I am making a simple scatter plot with multiple data sets. Each data set has a different color, but the legend shows points all in the same color. Example code showing problem below: (ONLY IN 2015b)
---------------
x = 1:1:100;
y1 = rand(1,100);
y2 = rand(1,100);
y3 = rand(1,100);
figure;
scatter(x,y1);
hold on;
scatter(x,y2,'*');
scatter(x,y3);
legend('random 1','random 2','random 3') ;
---------------
The different symbol choice on 'random 2' illustrates that the problem is only with color, and not with referencing the same handle for each.
Help much appreciated!
Maddie
4 Kommentare
  Talfan Evans
 am 4 Jul. 2016
				Also found this bug. Easy to use the plot command but specify the marker type, i.e:
scatter(x,y,'r')
produces the same output as:
plot(x,y,'or')
The bug doesn't seem to affect the plot command.
  joebob
 am 16 Feb. 2017
				Hello, found a way to show the color in the legend by forcing the `MarkerFaceColor` property:
h = scatter(x_data, y_data, area_data, 'green', 'filled', 'MarkerFaceColor', 'green');
Akzeptierte Antwort
  Mike Garrity
    
 am 15 Sep. 2015
        2 Kommentare
  lis coffey
      
 am 4 Jul. 2016
				i guess the problem is only with color, and not with referencing the same handle for each. Thanks \ Qwikfix \
Weitere Antworten (4)
  Jacob Kamminga
      
 am 28 Jun. 2016
        From the bugreport, Use this workaround when the points within each scatter plot are different colors:
Call the legend function with two or more output arguments:
s1 = scatter(1:10,1:10,[],1:10);
hold on
s2 = scatter(2:11,1:10,[],26:35);
[h, ~] = legend('show');
1 Kommentar
  Tony L.
 am 15 Sep. 2015
        There must be a cleaner way to do this than the below, but gscatter seems to do the right thing:
x = 1:1:100;
y1 = rand(1,100);
y2 = rand(1,100);
y3 = rand(1,100);
g1 = repmat(1,length(y1),1);
g2 = repmat(2,length(y2),1);
g3 = repmat(3,length(y3),1);
ds = [x', y1', g1; x', y2', g2; x', y3', g3];
figure;
gscatter(ds(:,1), ds(:,2), ds(:,3));
legend('random 1','random 2','random 3') ;
0 Kommentare
  SHR
 am 1 Mär. 2016
        I have a similar issue. My data set is a table with multiple variables over time associated with specific locations. I wanted to graph all variables (y axis) over time on one scatter plot only for one location. Thus I converted the dates to DateNumebers and restricted the variables by location e.g., Y1-Znppm(SiteCat=='location_x'. The legend has the same symbol color. Is there an easier way to circumvent the bug?
1 Kommentar
Siehe auch
Kategorien
				Mehr zu Scatter Plots finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!












