Discussion:
Plot a diode I/V characteristic
Doug Stewart
2018-12-10 18:30:49 UTC
Permalink
On Sun, Dec 9, 2018 at 4:20 PM anger <
Hi!
I'm trying to plot a I(V) curve of a diode.
The problem is that the scale of V below 0 is much smaller than the
scale
above 0 (the picture illustrate it)
Loading Image...
Can I split the scales above and below zero?
I'm using Octave 4.2.2 on Lubuntu.
Thanks,
anger
I tried , and I don't think that it can be done on octave. :-(
Doug
How about scaling up the values that are below zero before plotting?
It
might give you problems with using Octave's labels, but it would expand
the
portion of the curve that interests you.
Maynard
Yes, this looks like a good solution.
hax1 = axes ("position", [.5 .5 .4 .4]); hold on
plot (0:1000, 0:1000)
hax2 = axes ("position", [.1 .1 .4 .4], "xaxislocation", "top",
"yaxislocation", "right"); hold on
plot (0:-1:-10, 0:-1:-10)
% Remove ambiguous/overlapping tick labels at the origin
xl = get (hax1, "xticklabel");
xl{1} = "";
set (hax1, "xticklabel", xl)
xl = get (hax2, "xticklabel");
xl{end} = "";
set (hax2, "xticklabel", xl)
yl = get (hax1, "yticklabel");
yl{1} = "";
set (hax1, "yticklabel", yl)
yl = get (hax2, "yticklabel");
yl{end} = "";
set (hax2, "yticklabel", yl)
Pantxo
--
http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html
Using what Pantxo said, here is an M file for you to start with. :-)
--
DAS[image: Certificate for 206392]

<https://linuxcounter.net/user/206392.html>
Pantxo
2018-12-10 15:54:22 UTC
Permalink
On Sun, Dec 9, 2018 at 4:20 PM anger &lt;
Hi!
I'm trying to plot a I(V) curve of a diode.
The problem is that the scale of V below 0 is much smaller than the
scale
above 0 (the picture illustrate it)
https://i.ytimg.com/vi/_vKeaPHXF9U/maxresdefault.jpg
Can I split the scales above and below zero?
I'm using Octave 4.2.2 on Lubuntu.
Thanks,
anger
I tried , and I don't think that it can be done on octave. :-(
Doug
How about scaling up the values that are below zero before plotting? It
might give you problems with using Octave's labels, but it would expand
the
portion of the curve that interests you.
Maynard
Yes, this looks like a good solution, but you won't be able to indicate the
different scales in x/ylabels as in your original plot.

You could also make use of two axes:

hax1 = axes ("position", [.5 .5 .4 .4]); hold on
plot (0:1000, 0:1000)

hax2 = axes ("position", [.1 .1 .4 .4], "xaxislocation", "top",
"yaxislocation", "right"); hold on
plot (0:-1:-10, 0:-1:-10)

% Remove ambiguous/overlapping tick labels at the origin
xl = get (hax1, "xticklabel");
xl{1} = "";
set (hax1, "xticklabel", xl)
xl = get (hax2, "xticklabel");
xl{end} = "";
set (hax2, "xticklabel", xl)
yl = get (hax1, "yticklabel");
yl{1} = "";
set (hax1, "yticklabel", yl)
yl = get (hax2, "yticklabel");
yl{end} = "";
set (hax2, "yticklabel", yl)

Pantxo



--
Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html
Loading...