Hi,
I have the following Problem:
I created a variable that is either 1 or -1, depending on other factors, which are irrelevant for the Problem itself. Now I would like to plot the results using this code:
myData(:,1)=[726792 726793 726794 726796 726799 726800 726801 726802 ];
myData(:,2)=[1 1 1 -1 -1 1 1 -1];
plot (myData(:,1),myData(:,2))
axis([min(myData(:,1)) max(myData(:,1)) -2 2])
datetick('x','mmmyyyy')
That is woking fine, however instead of having -1 and 1 on the yaxis, I would like to have exactly this plot but on the y axis at the Point where now a 1 is Standing, i would like to write "contango" and at -1, I would like to write "backwardation". Is this somehow possible?

 Akzeptierte Antwort

Mischa Kim
Mischa Kim am 22 Nov. 2014

1 Stimme

Locks, add to your code
ax = gca;
ax.YTick = [-1,1];
ax.YTickLabel = {'contango','backwardation'};

5 Kommentare

Locks
Locks am 22 Nov. 2014
thanks a lot for your help!
I tried this:
myData(:,1)=[726792 726793 726794 726796 726799 726800 726801 726802 ];
myData(:,2)=[1 1 1 -1 -1 1 1 -1];
plot (myData(:,1),myData(:,2))
axis([min(myData(:,1)) max(myData(:,1)) -2 2])
datetick('x','mmmyyyy')
ax = gca;
ax.YTick = [-1,1];
ax.YTickLabel = {'contango','backwardation'};
Unfortunately, it does not work and I get the following warning: ??? Warning: Struct field assignment overwrites a value with class "double". See MATLAB 7.0.4 Release Notes, Assigning Nonstructure Variables As Structures Displays Warning for details.
Is there anything I need to change in addition? I am using R2012a
Mischa’s commands are for R2014b.
For R2012a, you need to change the assignments to:
set(gca, 'YTick', [-1,1], 'YTickLabel', {'contango','backwardation'})
Locks
Locks am 22 Nov. 2014
perfect, exactly what I needed, thanks to both of you.
Moslem Uddin
Moslem Uddin am 4 Jan. 2019
I want to chane for just one point, all others will be the same . what to do ?
Create a sample plot and retrieve the handle of the axes containing it.
h = plot(1:10, 1:10);
ax = ancestor(h, 'axes');
Retrieve the Y tick labels.
yL = ax.YTickLabel;
Change the retrieved labels.
yL{3} = '-999';
Update the labels in the axes.
ax.YTickLabel = yL;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Erenca
Erenca am 29 Dez. 2015

0 Stimmen

If you wish to do it using the graphical interface, follow these steps (i am using R2015b)
  • Plot the figure.
  • On the figure window choose 'Edit' dropdown menu.
  • On the edit dropdown menu click on 'Axes properties...'
  • On the newly opened window you will see 'Ticks...' button on lower right hand side, click on it
  • Now you can replace the axis variables with whatever you want, be it number or string
best- erenca

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 22 Nov. 2014

Kommentiert:

am 4 Jan. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by