【问题标题】:Creating colormap at specific point and color weights at matlab在matlab中创建特定点的颜色图和颜色权重
【发布时间】:2017-02-28 16:44:30
【问题描述】:

我有一些数据,其中包括一些偏转和力值。像 deltaX deltaY 和在该点测量的力为 Fx 和 Fy。我想在该点创建一个颜色图,其中包含二维中点之间的力大小和颜色过渡。例如,如果 point1 是红色(高值,大偏转),而 point2 是蓝色(低值,小偏转)我想要它们之间的颜色过渡。您对此有什么建议吗?

数据如下。 第一列位置X 第二列位置Y 第三纵队部队X 第四列力Y

我需要根据 X 和 Y 的位置和力的大小来绘制这张地图。

***当我取向量的大小时,我们有 positionX positionY 和只有 1 个力值。

filein =

         0         0   -0.0395    0.1189
         0    1.5053    0.2127  -11.3568
   -0.0008    3.0082    0.6719  -22.0470
   -0.0048    4.5093    0.9231  -32.7004
    0.0069    6.0033    1.2499  -43.2750
   -0.0029    7.5008    1.6960  -53.4941
    1.4981    0.0102   -1.5213    1.2031
    1.4979    1.5003   -1.2326  -10.0738
    1.5071    3.0043   -0.6965  -20.7386
    1.4896    4.4943   -0.2563  -31.5026
    1.5020    5.9921    0.0480  -42.3186
    1.5021    7.4909    0.7614  -52.7354
    3.0016    0.0022   -2.6099    1.9455
    3.0022    1.4960   -2.6157   -9.3388
    2.9959    3.0087   -1.8898  -20.1823
    2.9955    4.4977   -1.3670  -30.7842
    2.9923    6.0041   -0.8444  -41.7370
    2.9976    7.5055   -0.2241  -52.1361
    4.4995   -0.0016   -4.0576    2.5489
    4.5009    1.4961   -3.8135   -8.6871
    4.4930    2.9939   -3.0315  -19.4825
    4.4986    4.5045   -2.6034  -30.2974
    4.5046    5.9931   -1.9570  -40.9145
    4.4972    7.5023   -1.1994  -51.4071
    5.9931   -0.0014   -5.1986    3.2395
    5.9954    1.5000   -5.1224   -7.9289
    6.0017    2.9977   -4.3153  -18.7471
    6.0045    4.4939   -3.6613  -29.4662
    6.0030    6.0081   -2.9086  -40.3400
    6.0003    7.5006   -2.1704  -50.6973
    7.4974   -0.0018   -6.5690    4.0048
    7.4977    1.5043   -6.5230   -7.0994
    7.5047    3.0058   -5.5833  -18.0435
    7.5083    4.5058   -4.8070  -28.6861
    7.5024    6.0059   -4.0150  -39.4321
    7.5006    7.5023   -3.1837  -49.8617

【问题讨论】:

  • 这是一个 4D 矩阵,不能表示为 3D 表面。为什么不考虑绘制两个单独的图形 X,Y,FxX,Y,Fy
  • 实际上,当我取向量的大小时,我们有 3 个不同的参数。
  • 就像在某些点颜色权重一样。例如,我们有一个蓝色的表面或类似的东西。当它根据数据程序获取力数据时,会在某个区域上涂上颜色。

标签: matlab plot


【解决方案1】:

您可以使用meshgridsurfmesh 命令来绘制它:

[X,Y] = meshgrid(filein(:,1),filein(:,2));
M = sqrt(filein(:,3).^2+filein(:,4).^2);
Z=meshgrid(M,M);
C = gradient(Z);
figure
surf(X,Y,Z,C);colorbar

您可以按如下方式移除网格并进行插值:

surf(X, Y, Z,'EdgeColor', 'None', 'facecolor', 'interp');

然后从上方查看:

view(2)

【讨论】:

  • 它应该是二维的。当我将其更改为从 X-Y 平面查看时。这是我想看到的。但是当我从 X-Y 看时,颜色是如此接近。我怎样才能让它更明显?
  • 谢谢。在这一点之后,我可以玩一点。你给了我一个很好的起点。干杯..
  • 当然。没问题。
猜你喜欢
  • 1970-01-01
  • 2023-01-12
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 2016-05-30
相关资源
最近更新 更多