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;

end

x=[1:1:365];

y=[0:(1/(4)):24-1/(4)];

figure(FigNr)take a look to the part 2 of the carpet plot function

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])

## 2 comments:

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

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/

Post a Comment