I just want to plot a graph like this:
I know it's a contour plot, but I don't know how to do it.
I wanna plot several curves (as shown in the figure) vs another parameter, for example:
Curve 1: X-Axis --> Voltage | Y-Axis --> Current | For T = 10ºC
Curve 2: X-Axis --> Voltage | Y-Axis --> Current | For T = 20ºC
Curve 3: X-Axis --> Voltage | Y-Axis --> Current | For T = 40ºC
Curve 4: X-Axis --> Voltage | Y-Axis --> Current | For T = 60ºC
Curve 5: X-Axis --> Voltage | Y-Axis --> Current | For T = 80ºC
Somebody could help me? Thanks in advance.

댓글 수: 2

KSSV
KSSV 2018년 5월 9일
contour is the one you need. What problem you have?
Juan Castillo
Juan Castillo 2018년 5월 9일
Hi, thanks for your help.
Please read my last comment for more info.

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

 채택된 답변

jonas
jonas 2018년 5월 9일

0 개 추천

Basically you don't define data along lines but rather on a full rectangular grid. Let's say you want to plot data between x=0:10 and y=0:10.
x=0:10;
y=0:10;
[X,Y]=meshgrid(x,y)
This will give you a grid (11x11). Now define the function Z(Y,X) which you want to plot. For example:
Z=X.^2+Y.^2
[C,h]=contour(X,Y,Z)
You can also define the number of contours as a fourth argument. Finally, you can label the contours by adding:
clabel(C,h)
Hope this helps

댓글 수: 6

Juan Castillo
Juan Castillo 2018년 5월 9일
Thank you very much for your help.
I know what you mean, in fact I tried it before with no results. My problem here is that the Z parameter (temperature in my example) is not function of X or Y, this parameter is independent and variable in each curves, so, is there any solution?
Thanks again
jonas
jonas 2018년 5월 9일
There is always a solution, but I'm not entirely sure what it is that you want to Plot. The point of a contour Plot is that Z is constant along the contour. What do you have on XYZ? What does the curve signify?
Hi again, im gonna explain it a little bit more:
My intention is to plot some curves for diferent values of the temperature. Example:
Current through a resistance:
For T = 20ºC --> X-axis: Voltage from 0 to 5 V, Y-axis: Current measured. Curve 1.
For T = 40ºC --> X-axis: Voltage from 0 to 5 V, Y-axis: Current measured. Curve 2.
For T = 60ºC --> X-axis: Voltage from 0 to 5 V, Y-axis: Current measured. Curve 3.
My Z parameter here is the temperature, and it's not dependent of X or Y, its variable (by me) and I know it's value.
Do you understand me now?
Thanks again
jonas
jonas 2018년 5월 9일
Perhaps. So you have some function y(x) at different T? And you want to plot those functions?
If thats the case, then a contour plot is not what you need.
What are the dimensions of your data set?
Exactly. That's what I wanna plot.
For example. The dimensions are:
Curve 1. Tº = 20ºC
X-Axis: Voltage
0
0,02
0,04
0,06
0,08
0,1
0,12
0,14
0,16
0,18
0,2
0,22
0,24
0,26
0,28
0,3
0,32
0,34
0,36
0,38
0,4
0,42
0,44
0,46
0,48
0,5
0,52
0,54
0,56
0,58
0,6
0,62
0,64
0,66
0,68
0,7
0,72
0,74
0,76
0,78
0,8
0,82
0,84
0,86
0,88
0,9
0,92
0,94
0,96
0,98
1
0,98
0,96
0,94
0,92
0,9
0,88
0,86
0,84
0,82
0,8
0,78
0,76
0,74
0,72
0,7
0,68
0,66
0,64
0,62
0,6
0,58
0,56
0,54
0,52
0,5
0,48
0,46
0,44
0,42
0,4
0,38
0,36
0,34
0,32
0,3
0,28
0,26
0,24
0,22
0,2
0,18
0,16
0,14
0,12
0,1
0,08
0,06
0,04
0,02
0
Y-Axis: Current measured
1,6785E-6
6,5565E-5
1,334E-4
2,035E-4
2,7375E-4
3,496E-4
4,2841E-4
5,1111E-4
5,9634E-4
6,7216E-4
7,7429E-4
8,6436E-4
9,6434E-4
0,00108
0,00121
0,00137
0,00149
0,00171
0,00198
0,00231
0,00272
0,00309
0,00359
0,00419
0,00498
0,00557
0,00656
0,00722
0,00801
0,00863
0,00952
0,01034
0,01112
0,01174
0,01314
0,01408
0,01473
0,01561
0,01614
0,01688
0,01806
0,01863
0,0193
0,02016
0,021
0,02143
0,02205
0,02277
0,02365
0,02436
0,0251
0,02484
0,02425
0,02372
0,02336
0,0228
0,02225
0,02166
0,02109
0,02056
0,01999
0,01944
0,0189
0,01835
0,01783
0,0173
0,01676
0,01623
0,01571
0,01519
0,01466
0,01415
0,01364
0,01312
0,01261
0,0121
0,0116
0,01109
0,01059
0,01009
0,00958
0,00909
0,00859
0,0081
0,00761
0,00712
0,00663
0,00615
0,00566
0,00518
0,0047
0,00422
0,00375
0,00327
0,0028
0,00233
0,00186
0,00139
9,2199E-4
4,5571E-4
1,168E-5
Curve 2. Tº = 40ºC
X-Axis --> Same
Y-Axis --> Same with another values
And so on. All the curves have the same dimensions.
Thanks again for your patience.
Hi again, sorry for the late reply. Based on the comments, what you want is an ordinary plot, like this:
h=plot(x,y1,...
x,y2,...
x,y3) %and so on
You can also add labels using text. Adding a colorbar to a 2d-plot is not as trivial, but it can be done by setting the line colors based on a colormap and a temperature vector, or alternatively by using something like this non-default function 3d color line (link)
This will not give you a plot identical to the one in your figure, which I believe is a surface plot (with data on a full rectangular grid). If you want to obtain similar results, then there are some different solutions. To be honest, having both colors AND clabels (as in the figure) is however unnecessary. Anyway, let me know if you still want that.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Contour Plots에 대해 자세히 알아보기

질문:

2018년 5월 9일

댓글:

2018년 5월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by