[Scilab-users] Fwd: plotxxyyy
Jens Simon Strom
j.s.strom at hslmg.de
Wed Oct 12 18:16:20 CEST 2016
Hallo Frieder,
You can independently combine stack and skip of the measurement numbers
by the code below.
//Plotting measurement numbers with optional gaps and optional stacking to avoid overlapping
//Generating dummy measurement data x,y and plotting them
dx=0.5:50;// increment of x
x=cumsum(dx);
y=sind(x);
yspan=max(y)-min(y);
nM=length(x);//number of measurements
xdel();
plot(x,y,'r')
plot(x,y,'b+')
//Input parameters for plotting the measurement numbers with optional gaps and stacking to avoid overlapping
nstack=6;//maximum number of stacked measurement numbers
hstack=0.1;//height of measurement number stack (relative to span). hstack=0: no stacking independent of nstack
ybase=-1; //base ordinate for measurement numbers
step=2;// step=1: no gap, step=2: every second measurement number, etc.
//Writing measurement numbers
M=1:step:nM;//opted measurement numbers
for m=1:length(M)
xstring(x(M(m)),ybase+(modulo(M(m),nstack))*hstack*yspan/nstack,string(M(m)))
end
"How can I move the lettering above the plot (or at least to the bottom, next to the x-axis)?"
By data_bounds (see axes_properties in the help pages) you can enlarge the y-axis beyond the y data span at will.The y-level of the lettering is controlled by the input variable 'ybase' (see code above).
Kind regards
Jens
---------------------------------------------------------------------------------------------------------------------------------
Am 12.10.2016 14:01, schrieb Frieder Nikolaisen:
>
> Hello everybody,
>
> I did solve the Problem with showing only 10 line numbers, by using IF.
>
> printer=1
> for k=1:A_size(1,1) //Beschriftung
> *if k>A_size(1,1)*(printer/10) then*
> printer = printer + 1
> xstring(x(k),y3(1),string(k))
> // xstring(x,y,str,[angle,[box]])
> end
> set(handles.Anzeige, 'string', 'Diagrammbeschriftung' + string(k) + ' von' + string(A_size(1,1)))
> end
>
> The line numbering is connected to the y-axis. How can I move the lattering aboth the plot (or at least the bottom, next to the x-axis)? (attached plot: subplot_with_line_number_2_tenth.gif)
>
> About Jens help:
> I attached three plots: the stacks Picture are with the Code of Jens. Stacking is really nice, but I do not need every line number. With 921 data Points, it is already unreadable again. But thanks for your ideas, the Code is great for learningn anyway.
>
> Cheers
> Frieder
>
> On 2016-10-12 11:48, Jens Simon Strom wrote:
>
>> Hello Frieder,
>> Your plots look better now. You can avoid overlapping of measurement
>> numbers by sawtooth stacking them. See example code below.
>> xdel();
>> //Generating dummy measurements x,y
>> dx=0.5:50;
>> x=cumsum(dx);
>> y=sind(x);
>> nM=length(x);//number of measurements
>> plot(x,y,'r')
>> plot(x,y,'b+')
>> //Plotting the measurement numbers in stacks to avoid overlapping
>> nstack=6;//number of stacked measurement numbers
>> hstack=0.2;//height of measurement number stack (relative to window height)
>> ybase=-0.9; //base ordinate for measurement numbers
>> yspan=max(y)-min(y);
>> for m=1:nM//measurement number
>> xstring(x(m),ybase+(modulo(m,nstack)-1)*hstack*yspan/nstack,string(m))
>> end
>> Kind regards
>> Jens
>> ------------------------------------------------------------------------------------------------------------------------------
>> Am 12.10.2016 10:52, schrieb Frieder Nikolaisen:
>>>
>>> Hello,
>>>
>>> thank you for all the feedback and help. It's really great.
>>>
>>> I used the idea of Jens Simon Strom combined with some help from
>>> last week:
>>>
>>> //Datensätze
>>> x1 = (A(:,1) - A(1,1)) * 24 * 3600;
>>> y1 = A(:,y_1);
>>> y2 = A(:,y_2);
>>> y3 = A(:,y_3);
>>> drawlater()
>>>
>>> subplot(3, 1, 1)
>>> co = color("green");
>>> plot2d(x1, y1, co);
>>> a = gca();
>>> b.font_color = co;
>>> a.foreground = co;
>>> ylabel(string(kT(y_1)),"color",co)
>>> a.x_location = 'top';
>>>
>>> subplot(3, 1, 2)
>>> co = color("blue");
>>> plot2d(x1, y2, co);
>>> b = gca();
>>> b.font_color = co;
>>> b.foreground = co;
>>> ylabel(string(kT(y_2)),"color",co)
>>> b.axes_visible(1) = "off";
>>> //b.marings = [0.1 0.1 0.3 0.5];
>>> //b.filled ="off";
>>> subplot(3, 1, 3)
>>> co=color("red");
>>> plot2d(x1, y3, co);
>>> c = gca();
>>> c.font_color = co;
>>> c.foreground = co;
>>> //c.axes_visible(1) ="off";
>>> ylabel(string(kT(y_3)),"color",co)
>>> //xlabel(string('Zeit [Sekunden]'), co)
>>> x= (A(:,1) - A(1,1)) * 24 * 3600;
>>> for k=1:A_size(1,1) //Beschriftung
>>> xstring(x(k),x(1),string(k)) // x(1) always 0
>>> // xstring(x,y,str,[angle,[box]])
>>> disp(x(1))
>>> end
>>> //c.marings = [0.1 0.1 0.5 0.3];
>>> //c.filled ="off";
>>>
>>> drawnow()
>>>
>>>
>>> The printed plots are attached. I did plot different paramters, as I can choose then in my GUI.
>>> That works well:
>>>
>>> * Three plots, having the same x axis.
>>> * x axis on the top and bottom
>>> * Line *numbers Fitting the x axis*.
>>>
>>> That does not work:
>>>
>>> * showing a *few line numbers* only, for reading (best case:
>>> Fitting the automatic shown times in sec
>>>
>>> Problem: I cannot tell, how many datapoints there are going to be.
>>> So it mus be choosen automaticly.
>>>
>>> Best regards
>>>
>>> Frieder
>>>
>>> On 2016-10-11 21:04, Samuel Gougeon wrote:
>>>
>>> Hello,
>>>
>>> Le 11/10/2016 14:46, Rafael Guerra a écrit :
>>>
>>> Hi,
>>>
>>> I was not able to follow the whole discussion
>>>
>>> Neither did i,
>>>
>>> but concerning your subplot challenge: "/... I cannot add a
>>> second x-axis in a subplot by newaxis(). How to add a x-axis
>>> by using subplot?/"and your last example,
>>>
>>> Couldn't you add a 4^th subplot at the bottom in order to
>>> plot the 2^nd x-axis (say by plotting only zeros)?
>>>
>>> .
>>> Why not using drawaxis() as already suggested? drawaxis() is
>>> made for this kind of situation.
>>> In this thread, no logarithmic axis is involved. So i do to
>>> catch the reason of ignoring drawaxis().
>>>
>>> By the way, IMO, a drawing of what exactly is required would be
>>> clearer than hundred of lines of description, with schematic
>>> curves, axes, arrows linking curves to their multiple axes in x
>>> and y.
>>>
>>> BR
>>> Samuel Gougeon
>>>
>>>
>>>
>>> _______________________________________________
>>> users mailing list
>>> users at lists.scilab.org
>>> http://lists.scilab.org/mailman/listinfo/users
>
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20161012/8545af3b/attachment.htm>
More information about the users
mailing list