HOw to set axis?

14 vues (au cours des 30 derniers jours)
tim
tim le 15 Mar 2016
Hi to everyone, I found the following usefull code on this website, my problem is that I am not able to modify the axis. If I don't change the code at all, the axis limits follow the input values, so if i send some values between 0 and 5 i get thi axis limit, if I send values from 0 to 100 the axis limit change. I need to get fixed axis. For example from 0 to 130 on the y axis. About x axis,it is different. I need this graph to plot how the temperature changes as a function of the time. So each sample that I receive should be plotted in the right time windows, so maybe i need like a timer. Can someone help me on?? at leat with one of my problems?? thank you
function real_time_data_stream_plotting
This example demonstrates how to automatically read a set number of data bytes as and when they are available. This MATLAB® script also generates a real time plot of streaming data collected from the TCPIP server.
The script may be updated to use any instrument/device/TCPIP server to collect real time data. You may need to update the IP address and port.
To generate a report of this entire script, you may use the PUBLISH command at the MATLAB® command line as follows:
publish(real_time_data_plot);
% Author: Ankit Desai
% Copyright 2010 - The MathWorks, Inc.
%%Create the interface object
% Create a TCPIP object listening to port 19 (Character Generator).
%
% *Note* : To enable character generator service at port 19 on a Windows platform, enable:
%
% Control Panel > Add Remove Programs > Add/Remove Windows Component > Networking Services
%
interfaceObject = tcpip('localhost',19);
Setup a figure window and define a callback function for close operation
figureHandle = figure('NumberTitle','off',...
'Name','Live Data Stream Plot',...
'Color',[0 0 0],...
'CloseRequestFcn',{@localCloseFigure,interfaceObject});
Setup the axes
axesHandle = axes('Parent',figureHandle,...
'YGrid','on',...
'YColor',[0.9725 0.9725 0.9725],...
'XGrid','on',...
'XColor',[0.9725 0.9725 0.9725],...
'Color',[0 0 0]);
xlabel(axesHandle,'Number of Samples');
ylabel(axesHandle,'Value');
Initialize the plot and hold the settings on
hold on;
plotHandle = plot(axesHandle,0,'-y','LineWidth',1);
%%Setup interface object to read chunks of data
% Set the number of bytes to read at a time
bytesToRead = 500;
Define a callback function to be executed when desired number of bytes are available in the input buffer
interfaceObject.BytesAvailableFcn = {@localReadAndPlot,plotHandle,bytesToRead};
interfaceObject.BytesAvailableFcnMode = 'byte';
interfaceObject.BytesAvailableFcnCount = bytesToRead;
Open the interface object
fopen(interfaceObject);
pause(3);
snapnow;
%%Implement the bytes available callback
function localReadAndPlot(interfaceObject,~,figureHandle,bytesToRead)
Read the desired number of data bytes
data = fread(interfaceObject,bytesToRead);
Update the plot
set(figureHandle,'Ydata',data);
%%Implement the close figure callback
function localCloseFigure(figureHandle,~,interfaceObject)
Clean up the interface object
fclose(interfaceObject);
delete(interfaceObject);
clear interfaceObject;
Close the figure window
delete(figureHandle);

Réponses (0)

Catégories

En savoir plus sur Specifying Target for Graphics Output dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by