
problema con legend en graficas
Publicado por Luis (10 intervenciones) el 12/03/2013 11:06:15
Hola, estoy haciendo un programa en GUIDE en matlab. Lo que quiero hacer es preguntarle al usuario cuantas gráficas quiere representar en una misma gráfica. En función de ello, le voy preguntando al usuario en qué color quiere representar esa gráfica y voy cargando los valores de los ejes de abcisas y de ordenadas en vectores, ya que están almacenados en archivos.
También le pregunto al usuario el identificador de la gráfica que quiero meter en legend.
El problema que tengo es que cada vez que hago un legend me lo pone encima del otro, es decir sólo se ve el identificador de la última gráfica.
Este es el código que he hecho:
El problema es que el identificador de la gráfica me lo pisa y sólo queda el de la última cuando lo que yo quiero es que aparezca cada identificador con su respectivo color.
Gracias y un saludo.
También le pregunto al usuario el identificador de la gráfica que quiero meter en legend.
El problema que tengo es que cada vez que hago un legend me lo pone encima del otro, es decir sólo se ve el identificador de la última gráfica.
Este es el código que he hecho:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function comparativa_graficas_Callback(hObject, eventdata, handles)
% hObject handle to media (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
numerodegraficas=inputdlg('¿cuantas gráficas desea comparar:?');
maxgraficas=str2num(cell2mat(numerodegraficas)); %maxgraficas es el numero de graficas a comparar de tipo number
for(i=1:maxgraficas)
tensiones={'Introduzca el nombre del archivo donde están almacenados las tensiones:'}; %eje vertical
nombre1=inputdlg(tensiones);
fid1=fopen([cell2mat(nombre1),'.txt'],'r');
v=fscanf(fid1,'%f \b')';
fclose(fid1);
tiempos={'Introduzca el nombre del archivo donde tiene guardado el eje de tiempos:'}; %eje horizontal
nombre2=inputdlg(tiempos);
fid2=fopen([cell2mat(nombre2),'.txt'],'r');
t=fscanf(fid1,'%f \b')';
fclose(fid2),
color={'Introduzca el color con el que quiere representar la gráfica: r,b,g,c,m,y,b?'};
c=inputdlg(color);
duty={'Introduzca el duty cycle de la prueba:'}; %este es el identificador que quiero poner con legend
dc=inputdlg(duty);
axes(handles.axes3);
plot(t, v, cell2mat(c));
xlabel('Tiempo(seg)');
ylabel('Tensión(v)');
engrafica=strcat('Duty cycle: ',cell2mat(dc));
legend(engrafica);
hold on;
end
El problema es que el identificador de la gráfica me lo pisa y sólo queda el de la última cuando lo que yo quiero es que aparezca cada identificador con su respectivo color.
Gracias y un saludo.
Valora esta pregunta


0