How do I plot colors for different mesh elements using trimesh?

13 ビュー (過去 30 日間)
Garrett West
Garrett West 2023 年 11 月 4 日
移動済み: Dyuman Joshi 2023 年 11 月 4 日
I have a 2D mesh that I want to plot, and it seems like trimesh() may be the best function for doing so. However, I'm not clear on the capabilities of this function with regard to colors. Is there a way to fill each mesh element with a different color according to some pre-defined array of element colors? Is there any way to make this work with a colorbar?
Thanks.
Edit: To be more specific, my mesh is already stored in the data structure expected by the trimesh() function: A triangle connectivity matrix, and a set of x and y points for the nodes. I have a value stored in a separate vector for each element in the connectivity matrix that I want to be able to plot as a color for that element.
  3 件のコメント
Garrett West
Garrett West 2023 年 11 月 4 日
移動済み: Dyuman Joshi 2023 年 11 月 4 日
Thanks for your answer. I edited my question above to be more specific. The "Z" value in my case is not a function of the X and Y points, but rather a precomputed value for each triangular element.
Dyuman Joshi
Dyuman Joshi 2023 年 11 月 4 日
移動済み: Dyuman Joshi 2023 年 11 月 4 日
In that case -
%Example
%Sample data
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
%Triangulation object
T = delaunay(X,Y);
%trisurf plot
h = trisurf(T, X, Y, Z);
%Values for Color
C = rand([size(Z) 3]);
%Update the color data of the trisurf plot
h.CData = C;

サインインしてコメントする。

採用された回答

Garrett West
Garrett West 2023 年 11 月 4 日
I figured it out. I scaled the element values to match up to a chosen colormap (jet) and did a trimesh() one element at a time, specifying the face color of each element. I had to set the Z value to zero to allow me to add a face color and edge color. Then I added a colorbar and scaled it appropriately. Thanks for the suggestions!

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

製品


リリース

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by