8 nov 2014
Gráficos con fechas en Matlab
Como poner fechas en el eje x, en Matlab
Un problema que suele surgir al trabajar con Matlab, es el de querer colocar el tiempo en el eje x del gráfico de linea. En este documento se muestran dos formas de obtener estos gráficos en Matlab. (La segunda alternativa es mucho mas fácil y general) En la siguiente rutina se muestra como hacerlo, utilizando datos financieros que el fichero descarga automáticamente de Yahoo finance.
Alternativa 1
*----------------------------------------------------------------------------------------
%% Grafico de serie de tiempo
%Cargando bases
clear
conect = yahoo;
activos={'SPY','GDX'};
fromdate = '1/01/2011';
todate = floor(now);
dates = builduniverse(conect,activos,fromdate,todate);
[f,c]=size(dates)
%% Grafica de serie de tiempo
ts=dates(:,2:end)
ts1 = timeseries(ts,1:f);
ts1.Name = 'Daily Count';
ts1.TimeInfo.Units = 'days';
ts1.TimeInfo.StartDate = '01-Jan-2011'; % Set start date.
ts1.TimeInfo.Format = 'yyyy'; % Set format for display on x-axis.
ts1.Time = ts1.Time - ts1.Time(1); % Express time relative to the start date.
plot(ts1,'-'); legend(activos, 'Location','NorthWest'); grid on;
title('Grafico 1. Cotizaciones diarias de SPY y GDX'); ylabel('cotizaciones');
%%
tstool
Alternativa 2
*----------------------------------------------------------------------------------------
El comando datetick permite hacer gráficos con fechas de forma mucho mas natural. En el siguiente ejemplo se muestra como usarlo. la único a resaltar es que x es una matriz de fechas importadas desde Excel, esas fechas deben tener formato general. Es decir, cambiarle el formato de fecha a general en el Excel (quedan como números).
plot(x, serie,'Color',[1 0.1 0.2])
datetick('x','mmm-yy','keepticks'), xlim([x(1) x(end)])
Matlab también permite gráficar dos series con unidades sumamente diferente, como es precios y rentabilidades. En el siguiente ejemplo, X representa una matirz de fechas (importadas desde Excel, en excel es necesario cambiar el formato de fecha a formato general). returns representa una matriz de rentabilidades y tipos es una matriz de tipos de cambio (por eso se indica que vaya desde la segunda columna (2:end) para que coincidan las dimensiones, porque las rentabilidades pierden la primera observación.
[hAx,hLine1,hLine2] = plotyy(x(2:end),returns(:,i),x(2:end),tipos(2:end,i),'plot');
ylabel(hAx(1),'Rentabilidades') % left y-axis
datetick(hAx(1), 'x','mmm-yy','keepticks')
hLine2.LineStyle = '-.';
ylabel(hAx(2),'Tipo de Cambio') % right y-axis
datetick(hAx(2), 'x','mmm-yy','keepticks')
title({['Tipo de cambio: ',num2str(nomvar{i})]}), grid off
Recodificación de variables usando dplyr en R
Una base de datos suele tener diversos tipos de variables del tipo cualitativo y cuantitativo. En función del tipo de variables aplicamos di...
-
Missing Values (NA) in R. En la siguiente entrada se muestran algunas operaciones básicas para la identificación y tratamiento de valor...
-
Las series económicas pueden estar influidas por una serie de procesos no determinista, ni conocidos para el analista y que pueden incidir ...
-
Tablas de frecuencia con condicionales: tabulate Las tablas de frecuencia absoluta nos permiten contabilizar casos que cumplen con d...