2013-01-25 2 views
4

옥타브에서 다른 히스토그램 위에 하나의 히스토그램을 만듭니다.옥타브 : 색 혼합을 사용하여 두 개의 히스토그램 작성

enter image description here

당신이 거기에 중복이고 적색 데이터가 그린 데이터의 일부를 가린다 볼 수 있듯이

hold on; 
    hist(normalData(:, column), 10, 1, "facecolor", "g"); 
    hist(anomalousData(:, column), 10, 1, "facecolor", "r"); 
    hold off; 
. 이 문제를 해결할 방법이 있습니까? 아마도 겹치는 부분에 색이 섞여 있을까요?

+0

입니다. 이상적으로는 FaceAlpha를 설정해야하지만 아직 구현되지 않았습니다. 그건 그렇고, 당신의 저장소의 크기가 각 데이터 세트마다 다른 것처럼 보일 것입니다. – carandraug

+0

옥타브 도움말 메일 링리스트를 고려해야합니다. – carandraug

답변

5

문제가 너무 오래 있습니다. 불행히도 투명도 "facealpha"에 대한 플로팅 속성은 hist() 함수에서 작동하지 않습니다.

아래 코드는 제 해결 방법을 보여줍니다. 기본 그래픽 툴킷은 fltk 일 수 있으므로 gnuplot으로 변경하십시오.

clear all 

graphics_toolkit("gnuplot") 

A = randn(1000,1); 
B = randn(1000,1)+2; 

아직도 지금 우리는 투명성을 허용하는 음모를 꾸미고에 대한 형식으로 HIST 데이터를 변환하고자하는 배포판

[y1 x1] = hist(A,10); 
[y2 x2] = hist(B,10); 

을 계산하는 HIST를 사용합니다.

[ys1 xs1] = stairs(y1, x1); 
[ys2 xs2] = stairs(y2, x2); 

xs1 = [xs1(1); xs1; xs1(end)]; xs2 = [xs2(1); xs2; xs2(end)]; 
ys1 = [0; ys1; 0]; ys2 = [0; ys2; 0]; 

플롯 채우기 기능

clf 
hold on; 
h1=fill(xs1,ys1,"red"); 
h2=fill(xs2,ys2,"green"); 

변경 원하는 수준으로 투명성 데이터.

set(h1,'facealpha',0.5); 
set(h2,'facealpha',0.5); 
hold off; 

나는 더 많은 평판이 있다면 이미지를 게시 할 것입니다.

0

I've 웹이 (광산하지 키우면, 나는 정말하지는이 허용되는 경우 알을) 할 수있는 매우 간단한 방법을 발견, 웹 페이지는이

https://chi3x10.wordpress.com/2008/03/10/histograms-of-two-set-of-data-with-different-color-in-matlab/

입니다

코드는 내가 생각할 수있는 유일한 제안의 차이와, 그 위에 또 다른 히스토그램을 그리고 그것을 투명 보이는 있도록 색상을하다이

hist(data1); 
hold on; 
hist(data2); 
hist(data3); 
h = findobj(gca,’Type’,’patch’); 
display(h) 

set(h(1),’FaceColor’,’r’,’EdgeColor’,’k’); 
set(h(2),’FaceColor’,’g’,’EdgeColor’,’k’); 
set(h(2),’FaceColor’,’b’,’EdgeColor’,’k’); 
관련 문제