Message Boards Message Boards

[✓] Plot a function with two variables?

GROUPS:

Hi, Is there any command I can use to plot a function (minDiff) in two variables z, x . I don't want 3D plots and I tried contour plots, but it doesn't give me a result. this is my syntax:

z = {0.336`, 0.3365`, 0.337`, 0.3375`, 0.338`, 0.3385`, 0.339`, 
   0.3395`, 0.34`, 0.3405`, 0.341`, 0.3415`, 0.342`, 0.3425`, 0.343`, 
   0.3435`, 0.34400000000000003`, 0.34450000000000003`, 
   0.34500000000000003`, 0.34550000000000003`, 0.34600000000000003`, 
   0.34650000000000003`, 0.34700000000000003`, 0.34750000000000003`, 
   0.34800000000000003`, 0.34850000000000003`, 0.34900000000000003`, 
   0.34950000000000003`, 0.35000000000000003`, 0.35050000000000003`, 
   0.35100000000000003`, 0.35150000000000003`, 0.35200000000000004`};
x = {0.439`, 0.4395`, 0.44`, 0.4405`, 0.441`, 0.4415`, 0.442`, 
   0.4425`, 0.443`, 0.4435`, 0.444`, 0.4445`, 0.445`, 0.4455`, 0.446`,
    0.4465, 0.447`, 0.4475, 0.448`, 0.4485, 0.449`, 0.4495, 0.45`, 
   0.4505, 0.451`, 0.4515, 0.452`, 0.4525, 0.453`, 0.4535, 0.454`, 
   0.4545, 0.455`};
minDiff = {0.00003801029774402991`, 0.00003166395441034695`, 
   0.00002824280188019947`, 0.000024959958712714654, 
   0.000022787269822019383`, 0.000019436483137210108`, 
   0.00001693371175948988, 0.000015088165217656512`, 
   0.000012260361064817496`, 0.000010559861086240865`, 
   8.76936167283543`*^-6, 6.751339890899566`*^-6, 
   5.873151744268928`*^-6, 4.1299202056503785`*^-6, 
   2.9436141706752585`*^-6, 2.6963256370489514`*^-6, 
   1.204783793086779`*^-6, 8.73309714394511`*^-7, 
   6.580914927107429`*^-7, 2.9797119948788726`*^-8, 
   5.763762151984972`*^-7, 3.834617172196265`*^-7, 
   6.411511518542553`*^-7, 1.9380608650917353`*^-6, 
   1.908754472834736`*^-6, 3.074073348904814`*^-6, 
   4.3815787238334555`*^-6, 5.26905301873764`*^-6, 
   7.3638110225485615`*^-6, 8.673162659005944`*^-6, 
   0.000015202058022669781, 0.000013293830765242055};



tab11 = Table[{z[[i]], x[[i]], minDiff[[i]]}, {i, 1, Length[z]}];

ListContourPlot[tab11, FrameLabel -> {"\!\(\*
StyleBox[SubscriptBox[\"\[Kappa]\", \"z\"],\nFontSize->24]\)", 
   "\!\(\*
StyleBox[SubscriptBox[\"\[Kappa]\", \"x\"],\nFontSize->24]\)"}, 
 ContourStyle -> 
  Directive[AbsoluteThickness[3], Dashing[{.05, .05}], Black], 
 BaseStyle -> {FontWeight -> Bold, FontSize -> 14}, 
 ContourShading -> False, Contours -> 2]


Thanks.
POSTED BY: Ghady Almufleh
Answer
13 days ago

I don't think you've quite provided us with everything required to help here. What is the definition of tab11? Can you minimize this at all to get rid of code that isn't directly relevant to the question at hand?

POSTED BY: Kyle Martin
Answer
13 days ago

Thank you for your response. tab11 is the table I created for my data. my function is minDiff is the minimum cross section in two variables z is the horizontal axes and x is the vertical axes. my data now after solutions are the numbers as in the table (table).In other words, my function is minDiff(z,x) is like f(z,x), so I need to plot my function in two variables(z,x) which their values are in the table.

the last command is my attempt to contour plot. Hope this helps to understand what I need.

Thanks.

POSTED BY: Ghady Almufleh
Answer
13 days ago

Thanks for providing that. Instead of a ContourPlot (I don't know if that is going to work well with your data), what about something like a ListPlot where the points are colored based on the third value?

listtest = Table[
  Style[{z[[i]], x[[i]]},
   Blend[{Red, Blue}, Rescale[minDiff[[i]], MinMax[minDiff], {0, 1}]]
   ],
  {i, 1, Length[minDiff]}]

ListPlot[listtest, 
 PlotLegends -> BarLegend[{Blend[{Red, Blue}, #] &, {0, 1}}]]

enter image description here

POSTED BY: Kyle Martin
Answer
13 days ago

Thank you so much!! appreciated

Do you know what the wrong in my command for ContourPlot? because I used it previously for another function in two variables and it was working, but my data was huge.

POSTED BY: Ghady Almufleh
Answer
13 days ago

Well, your data is pretty linear. My guess is that ContourPlot is not able to interpolate more general contours with data in that shape.

POSTED BY: Kyle Martin
Answer
13 days ago

I am very thankful!

POSTED BY: Ghady Almufleh
Answer
13 days ago

Hi, Do you have an idea how to plot this: if I have x and y axises and I want to determine points {x1,y1) as a line in xy, which is the best plot command to do this.;

 x = {0.025`, 0.025500000000000002`, 0.026000000000000002`, 
   0.026500000000000003`, 0.027000000000000003`, 0.0275`, 
   0.028000000000000004`, 0.0285`, 0.028999999999999998`, 
   0.029500000000000002`, 0.03`};

y = {0.075, 0.0755`, 0.076`, 0.0765`, 0.077`, 0.0775`, 0.078`, 
   0.0785`, 0.079`, 0.0795`, 0.08`};

x1 = {0.027000000000000003, 0.027000000000000003, 
   0.027000000000000003, 0.027000000000000003, 0.027000000000000003`, 
   0.027000000000000003`, 0.027000000000000003, 0.027000000000000003, 
   0.027000000000000003`, 0.027000000000000003, 0.0275`};

y1 = {0.075, 0.0755`, 0.076`, 0.0765`, 0.077`, 0.0775`, 0.078`, 
   0.0785`, 0.079`, 0.0795`, 0.08`};

Thanks.

POSTED BY: Ghady Almufleh
Answer
5 days ago

Group Abstract Group Abstract