Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 颜色/阴影密度条形图_Matlab_Graph_Matlab Figure - Fatal编程技术网

Matlab 颜色/阴影密度条形图

Matlab 颜色/阴影密度条形图,matlab,graph,matlab-figure,Matlab,Graph,Matlab Figure,是否可以创建颜色密度条形图。我想要这样一个图,它实际上是一个1D图(但一个二维条),其中颜色(或阴影)根据y值在0和1之间变化。x轴就是时间。当我们沿着x轴移动时,y值会发生变化,使得0

是否可以创建颜色密度条形图。我想要这样一个图,它实际上是一个1D图(但一个二维条),其中颜色(或阴影)根据y值在0和1之间变化。x轴就是时间。当我们沿着x轴移动时,y值会发生变化,使得0 我的数据样本以以下形式导入:

[日期、extdamp、htgvlv、占用、redamp、supdamp、clgvlv]=importfile1('MassImportAHU7.csv')

每个变量是一个318x1双精度,每个值是一个[0,1]元素


我希望这有点道理。这是一件很难解释的事情!非常感谢。

如果您有几个1D变量,比如说,保存在变量
a

您希望使用所有数据创建图像(或网格)

所以我会这么做

img=A(:,1);
for ii=2:size(A,2)
   img=horzcat(img,A(:,2))
end
imshow(img)
colormap gray
colorbar
编辑: 因为您没有图像处理工具箱,所以可以用其他方法来完成

A=rand(100,50) % sample data I created

Z=A;
[x,y]=meshgrid(1:size(Z,2),1:size(Z,1));
surf(x,y,Z)
view(2)
axis tight
colormap gray
colorbar
结果:

然后,如果要更改X和Y方向的倾斜角度,请检查以下有趣的答案:


我找到了另一种方法,可以画出与上面类似的样式图。它有它的优点(从我的初学者的角度来看),因为它更容易操作,并使它做我自己的事情,而不需要知道很多其他函数和代码。它还允许我在多个变量上将图形的着色和颜色更改为非预定义设置。从计算上来说,我可以想象它会慢一些,但玩起来肯定很有趣。下面是一些预定义变量的代码,这些变量在
[0,1]
限制日期5之间缩放:

A = [clgvlv,redamp,extfanstat,htgvlv,occupied,supfanspd]; %between 0 and 1
a = {'clgvlv','redamp','extfanstat','htgvlv','occupied','supfanspd'};
A(isnan(A)) = 0; %removing NaN's
date5 = %your dates/x variables

h=10 %optional scaling factor
K1 = date5(1)
K2 = date5(end);
K3 = 1/24/4 %tick-increments
J = size(A,2); % =2

%colour indicator
for j=1:J
    if mod(j,3) == 1
        Acol(j,:) = [0,1,1];
    elseif mod(j,3) == 2
        Acol(j,:) = [1,1,0];
    else mod(j,3) == 0
        Acol(j,:) = [1,0,1];
    end
end

%drawing Rectanges/blocks
for j=1:J
    for k=1:size(date5,1)
       rectangle('Position', [K1+ K3*(k-1), h*(j-1), 1, h], 'FaceColor', [1-Acol(j,1)*A(k,j) 1-Acol(j,2)*A(k,j) 1-Acol(j,3)*A(k,j)], 'LineStyle', 'none' )
    end
end

for j=1:J
    text(date5(end)+(date5(end)-date5(1))*0.02,(j-0.5)*h, a(j))
end

set(gca,'XTick',[date5(1):(1/6):date5(end)], 'XLim',[735881.5 date5(end)]) %delete if not dates
datetick('x','ddd HH:MM' ,'keeplimits','keepticks');
xlabel 'Time/Date'
ylabel 'Variables'

希望这对一些用户有帮助或至少有趣。

嗯,我想我明白了,但是你能举个例子吗?比如:?耶。沿着这条线的东西。与x轴相等但长边为x轴的东西。谢谢你不要像你描述的那样奇怪。我猜你们有几个一维数据数组,对吗?我有几个一维数组,我想根据日期/时间绘制(我的意思是,我希望它们根据时间t的值改变颜色)。最终我希望将它们堆叠起来,一个在另一个之上,这样我就可以轻松地比较它们。作为旁注,它们是阀位,因此[0,1],我希望看到随着时间的推移,每一个阀位都会对其他阀位产生怎样的影响。我已经看过了,但我不完全理解这里发生了什么<代码>img=A(:,1)不是图像,因此当我执行
imshow
时,我会收到以下消息:对于类型为“double”的输入参数,未定义函数“imshow”。(第26行)imshow(img)@josh中的错误编辑您的原始帖子,并向我展示一些变量如何存储在您的案例中的代码。如果将每个一维数据定义为图像中的一行,则所有连接的一维数据都应成为图像。如果一个(:,1)有你的第一个1D数据,一个(:,2)第二个1D数据等等,我发布的代码就可以工作on@josh哦,你可能没有图像处理工具箱,让我来编辑question@josh现在你应该可以复制我的optput了。你只需要创建你自己的矩阵。这很有效,非常接近我想要的最终结果。几分钟后我的数据就会在那里。非常感谢你的帮助!!