在matlab或excel中绘制三维条形图

我需要在matlab或Excel中绘制三维条形图。 我打算在x轴上使用一些date,在y轴上使用一些时间,在z轴上使用一些数量。 csv文件中的每个logging看起来像…

14日,21日,139.45

我不知道如何做到这一点。 任何人都可以帮助我。 我尝试使用excel的pivot图表。 然而,我不能操纵轴,并在每个刻度之间使用适当的空间。

谢谢kaisar

既然这个问题缺乏细节,让我举个例子来说明。

考虑下面的代码:

%# read file contents: date,time,value fid = fopen('data.csv','rt'); C = textscan(fid, '%s %s %f', 'Delimiter',','); fclose(fid); %# correctly reshape the data, and extract x/y labels num = 5; d = reshape(C{1},num,[]); d = d(1,:); t = reshape(C{2},num,[]); t = t(:,1); Z = reshape(C{3},num,[]); %# plot 3D bars bar3(Z) xlabel('date'), ylabel('time'), zlabel('value') set(gca, 'XTickLabel',d, 'YTickLabel',t) 

我运行以下数据文件:

data.csv

 18-Apr,00:00,0.85535 18-Apr,03:00,0.38287 18-Apr,06:00,0.084649 18-Apr,09:00,0.73387 18-Apr,12:00,0.33199 19-Apr,00:00,0.83975 19-Apr,03:00,0.37172 19-Apr,06:00,0.82822 19-Apr,09:00,0.17652 19-Apr,12:00,0.12952 20-Apr,00:00,0.87988 20-Apr,03:00,0.044079 20-Apr,06:00,0.68672 20-Apr,09:00,0.73377 20-Apr,12:00,0.43717 21-Apr,00:00,0.37984 21-Apr,03:00,0.97966 21-Apr,06:00,0.39899 21-Apr,09:00,0.44019 21-Apr,12:00,0.15681 22-Apr,00:00,0.32603 22-Apr,03:00,0.31406 22-Apr,06:00,0.8945 22-Apr,09:00,0.24702 22-Apr,12:00,0.31068 23-Apr,00:00,0.40887 23-Apr,03:00,0.70801 23-Apr,06:00,0.14364 23-Apr,09:00,0.87132 23-Apr,12:00,0.083156 24-Apr,00:00,0.46174 24-Apr,03:00,0.030389 24-Apr,06:00,0.7532 24-Apr,09:00,0.70004 24-Apr,12:00,0.21451 25-Apr,00:00,0.6799 25-Apr,03:00,0.55729 25-Apr,06:00,0.85068 25-Apr,09:00,0.55857 25-Apr,12:00,0.90177 26-Apr,00:00,0.41952 26-Apr,03:00,0.35813 26-Apr,06:00,0.48899 26-Apr,09:00,0.25596 26-Apr,12:00,0.92917 27-Apr,00:00,0.46676 27-Apr,03:00,0.25401 27-Apr,06:00,0.43122 27-Apr,09:00,0.70253 27-Apr,12:00,0.40233 

截图

使用MATLAB的CSV读取function (或自己写),然后使用bar3显示数据。