Triangular plot, Plotting, MATLAB, Ternary plot, color plot, Contour map

Still no one could help me with this question. I have a .csv file with 3 columns of different range of data. Each column contains 500,000 rows including some duplicate numbers. I am trying to plot a color plot like the one I attached here. A triangular color plot, like conotur map.

댓글 수: 1

Hello Farshad,
I am too looking for getting a triangular plot. Did you made any more progress on that, if so then kindly share the script for my reference. Your help is appreciated Thank you

댓글을 달려면 로그인하십시오.

답변 (2개)

KSSV
KSSV 2020년 10월 20일
Let A be your m*3 column array. Try this:
x = A(:,1) ; y = A(:,2) ; z = A(:,3) ;
%%structured
xi = unique(x) ; yi = unique(y) ;
[X,Y] = meshgrid(xi,yi) ;
Z = reshape(z,size(X)) ;
figure
surf(X,Y,Z)
%%unstructured
dt = delaunayTriangulation(x,y) ;
tri = dt.ConnectivityList ;
figure
trisurf(tri,x,y,z)
%% USe Interpoaltion
m = 100 ; n = 100 ;
xi = linspace(min(x),max(x),m) ;
yi = linspace(min(y),max(y),n) ;
[X,Y] = meshgrid(xi,yi) ;
Z = griddata(x,y,z,X,Y) ;
pcolor(X,Y,Z)
shading interp
colorbar

댓글 수: 6

Thanks KSSV for your answer. I ran your code and got this following erroe and run stoped at this stage:
Error using meshgrid (line 59)
Subscripting into a table using one subscript (as in t(i)) or three or more subscripts (as in t(i,j,k)) is not supported. Always
specify a row subscript and a variable subscript, as in t(rows,vars).
It is a mistake with class of variables. Attach your data here. You should read the data into matrix. I think you are reading it as a table.
You read the data like below:
A = xlsread("4b2_Combine.csv") ;
% remove outliers
x(x>100) = [] ;
y(y>100) = [] ;
z(z>100) = [];
% USe griddata
m = 1000 ; n = 1000 ;
xi = linspace(min(x),max(x),m) ;
yi = linspace(min(y),max(y),n) ;
[X,Y] = meshgrid(xi,yi) ;
Z = griddata(x,y,z,X,Y) ;
pcolor(X,Y,Z)
shading interp
colorbar
Thank you KSS for your time. Your code gave me the attached graph (The one with colorbar). But it is not something that I am trying to have. I also attached the plot that I wish to have. Is it possible to have this type of graph based on my dada?
If you know the triangular dimension.......make the vertices....use inpolygon and pick only the points inside this triangle and plot.

댓글을 달려면 로그인하십시오.

Farshad Daraei Ghadikolaei
Farshad Daraei Ghadikolaei 2020년 10월 20일

0 개 추천

How about make the data normalize? Then each triangle's sides will be betwee 0 to 1. But I am not sure how to code this.

댓글 수: 2

No that will not help....do you have triangle coordinates?
What do you mean by triangle coordinates? I need to plot those 3 columns together as a colorplot, then the graph will be in triangle shape, same as attached plot.

댓글을 달려면 로그인하십시오.

카테고리

제품

릴리스

R2019b

질문:

2020년 10월 20일

댓글:

2021년 8월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by