Friday, November 9, 2007

carpet plots with matlab

if you are planning to plot some data as carpet plot, you can use matlab. there is a simple trick to do that.

in this example, i create a carpet plot for a 35040 vector.
first, i convert the data into a 365x96 matrix. then i plot it using the surf command, and change the view point with "view(0,90)"
that's all!
here the function:

`function carpetplot(data,FigNr,colormap)max_zeilen = 24*4;zeile=1;spalte=1;i=1;while spalte <= 365,  while zeile <= max_zeilen,      DATA(zeile,spalte)=data(i);      zeile=zeile+1;      i=i+1;  end  spalte=spalte+1;  zeile=1;endx=[1:1:365];y=[0:(1/(4)):24-1/(4)];`
`figure(FigNr)clf     axes1 = axes(...           'FontSize',16,...           'LineWidth',1,...           'Box','on',...           'Parent',figure(FigNr));%,...%              'CLim',[-20000 -5000]);     xlabel(axes1,'Tag im Jahr');     ylabel(axes1,'Uhrzeit');     grid(axes1,'off');     hold(axes1,'all');     set(gca,'XLim',([1 365]),'YLim',([0 (24-1/(4*60))]))%,'ZLim',([-20000 -5000]))     surf(x,y,DATA,'EdgeColor','none',...       'LineWidth',1,'Parent',axes1);     view(0,90)     colorbar1 = colorbar('peer',...       axes1,'EastOutside',...       'Box','on',...       'FontSize',16,...       'XLim',[-0.5 1.5], 'YLim', [-20000 -5000],...       'CLim',[0 6]);     %load('MyColormaps','mycmap')     set(figure(FigNr),'Colormap',colormap)    % set(axes1,'CLim', [0 4])`
take a look to the part 2 of the carpet plot function

Leg said...

hi, if you whant to see how the carpet plot looks like, try this:

Rasterdiagram at Wikipedia

note: the carpet plot (in german Rasterdiagramm) in this article in wikipedia was done with this script

have a while,

leg

Charles_D said...

Johannes Hopf found a way to make Carpet-Plot with Excel and gnuplot. He published on his website (german) an article but didn´t release the full source-code. Maybe somebody can ask him. The website is: http://www.johannes-hopf.de/2008/09/carpet-plots-mit-excel-und-gnuplot-erstellen/