Variable time multiplot XY chart

Gurus,
I have reached the point in needing some help. Attached is a simulation of what I am doing. The part I need help with is quite clear...
I need to plot 2 XY graphs: data vs a variable time (although in the example it is fixed). One chart has a single plot, the other 2 traces. The graphs have a fixed length, behave like a waveform chart, except it is first in first out.
The graph in the top level VI labelled Total SA is a single trace plot. When running I can right click and select 'clear graph'  and it removes all the data in the buffer.
How can I achieve this with the mutli plot (2 traces)  XY graph labelled Total Mass in the top level VI?
Paul.
Message Edited by Manc Pablo on 09-02-2008 12:25 PM
"When I read about the horrors of drinking, I gave up reading"
Attachments:
variable time multiplot.llb ‏147 KB

Hi Manc Pablo,
Having read through your problem and taken a look at your code I would suggest that you investigate the piece of example code called "XY Graph.vi" in the LabVIEW example finder.  This demonstrates the correct coding practice for plotting two traces on a single graph.
I hope this helps but if not please reply with any problems you are having integrating the example code into your own vi.
Regards,
Tom
Applications Engineer
National Instruments UK & Ireland

Similar Messages

  • Dynamic variable Time for Select

    Hi,
    I try to develop some scripts but always I have the same problem , when I try to put in a Select instruction the variable Time, it doesn´t work correctly (for example):
    *SELECT(%example%,"ID","TIME","[ID]='%TIME_SET%' ")
    It doesn´t read correctly the variable Time_Set.
    Have you got any idea to try to do selects using dynamic variable?
    Thanks for all.

    Hi,
    Dynamic variables like %TIME_SET% do not interact very well with the compiled default logic (LGX files) when it is run after a data send. If you look at the Default.LGX file, you will notice that your *SELECT statement does not appear there because that *SELECT statement has already been compiled. That is why the logic works when it is run via the debugger (because the LGF file is getting executed at run time) and it does not work when it is run via a data send (because the LGX is being executed).
    What you will need to do is:
    1. Create a another logic file (for example: Calculation1.LGF) and copy the text from the Default.LGF to this new logic file.
    2.  Place the following text in the Default.LGF file:
    *RUNLOGIC
    *LOGIC=Calculation1.LGF
    *ENDRUNLOGIC
    3. Validate and save the Default.LGF file
    Now try running the logic after a data send and see if that works.
    Good luck,
    John

  • Problem with currency translation and variable time ref. with 0FISCPER

    Hello,
    We have a problem with a currency conversion with a variable time reference (as iobject we use 0fiscper)
    We created a currency conversion for several key fig:
    Our settings:
    Exchange rate Type: EURX
    dynamic ex rate determination
    Source cur from datarecord
    Fixed Target Curr (EUR)
    Variable time ref.: End of Period
    Special Infoobject: 0fiscper
    When we run the DTP we get the following error:
    <i>Enter rate GBP / EUR rate type EURX for 00.00.0000 in the system settings.</i>
    ending the DTP in a message type X.
    In table TCURR and T009/T009B all necessary information is available.
    After debugging the function module, it looks like the created date (created from the FISCPER) is set to 00.00.0000. This results in the error above.
    Does anybody have experience with this error and more important know how to solve it?
    We also have a 0FISCYEAR available but in the TCURR table al rates are defined per end of the month. When trying to use 0FISCYEAR as InfoObject in the variable time reference, a diffrent error occurs:  Enter rate GBP / EUR rate type EURX for 01.01.1001 in the system settings. While  the 0FISCPER is 2001001.
    Is there a bug in the function module? (couldn't find a SAP note)
    We are working with BI 7.0 and SP12
    Best regards
    Steven

    Please can you give more detail on how you were able to resolve this issue?  How did you add 0fiscper to the transformation?  I am on BW 3.5, how do I fix this same issue on it?  Please help, this is urgent.

  • Variable Time Change Audio

    Sending audio from FCP to Soundtrack doesn't appear to honour variable time changes. The video is of course as expected but the audio is at 100% constant speed.
    Can the audio stretching and timeslice tools in soundtrack be used to line up the audio to the video on the fly?

    Is this a bug that anyone is aware of or something to do with the transfer/send process from my system?

  • Charts again but this time multiplot X-Y

    For the life of me I can not figure out charts in Labview. I literally cringe every time I am asked to display a real time chart or graph of data.
    Anyway here is what I am tying to do.
    I need to plot several passes of data on one chart. I am using an X-Y chart because that is was is required to display the data correctly.
    I can plot one run just fine but I need to change the plot color and run the loop again.
    In my simple example the chart is in the inner loop because it need to be a real time display.
    Each iteration of the outer loop needs to be a different plot color.
    Solved!
    Go to Solution.
    Attachments:
    xy Graph.vi ‏12 KB

    Hello,
    I think that should do it
    Best regards,
    NWO
    Attachments:
    XY.Graph.png ‏40 KB
    XY.Graph.vi ‏11 KB

  • Can one plot, having a variable range, on a multiplot overlay Chart be used to control YScale.Sca​leFit? I don't want stacked charts.

    I can get Stacked Plots to Y-Scale fit OK, but these take up too much room on the screen for my application. When I switch the chart to Overlay Plots the YScale.ScaleFit property uses the Y-range for all of the plots, rather than for the selected plot. Is there a solution? Thanks.

    Hi DexterLM,
    Using one plot to control another plot�s Y-scale can be done by using property nodes. However they must be separate plots. I have created an example VI (attached) where I put a transparent chart (x and y scales are not visible) on top of another chart. The visible chart controls the x & y axis range of the transparent chart. You will notice that the transparent chart has to be the same size as the visible chart and overlaid exactly on top of the visible chart. For questions about making front panel objects transparent go to help and search for "transparent".
    Hope this will help!
    Regards,
    Brooks W.
    National Instruments
    Attachments:
    5878-HJ6438_y-scale_overlay_plots.vi ‏183 KB

  • How can I set #HOST# variable referenced in the Chart template?

    #HOST# and #HOST_PROTOCOL# are being set incorrectly by APEX from CGI variables when I create a chart. I am using APEX 4.1 and Oracle 11g. The get the continual "Loading data..." and then after it times out I get "Error loading file".
    Before we changed to a secure http environment, our charts worked. After we changed to the new web layer, the charts do not work. The #HOST# substitution was set to http://correctservername/ and #HOST_PROTOCOL# was set to http. We set PlsqlCGIEnvironmentList REQUEST_PROTOCOL=https in the dads configuration file and now the #HOST# displays https but it also includes the default port number which we do not want (https://correctservername:port/) The charts work without the port. REQUEST_PROTOCOL is not in the cgi list and setting this variable set #HOST_PROTOCOL#. What variable can we set to make #HOST# correct. It seems like #HOST# is being set by #REQUEST_PROTOCOL#'://'||HTTP_HOST||':'||SERVER_PORT||SCRIPT_NAME||'/'. SERVER_NAME could also be used in of HTTP_HOST. I don't know how APEX is setting #HOST#. Does it come from a host alias somewhere in the environment?
    I don't want to add a new cgi variable called HOST because HOST sounds so generic and it might interfere with something else running in our environment. Or, I don't want to change the plsql cgi environment variable (such as HTTP_HOST) because many developers may use owa_util.get_cgi_env('HTTP_HOST') to get the current server. If the SERVER_PORT is part of the #HOST# then what could I change it to if it needs to be null. If you leave it blank, then the default SERVER_PORT comes from the CGI variables.
    I would rather not create a global variable (hard-coding) and create a new chart template using the global variable or create a before header application process to re-direct url without a port.
    Edited by: Donna C-Houston on Oct 10, 2012 1:06 PM

    Hi Donna,
    changing the CGI environment variables HTTP_HOST, REQUEST_PROTOCOL and SERVER_PORT is the correct way how to resolve this, because it appears that your hiding the web server where you have installed mod_plsql or EPG by a different outside facing web server (also called reverse proxy). That's why APEX gets the host name, protocol and port of the internal web server, but should actually get the values of your reverse proxy web server. Can can fix that by changing the following CGI environment variables.
    HTTP_HOST should just contain the domain name (no protocol or port). For example: www.oracle.com
    REQUEST_PROTOCOL should contain http or https
    SERVER_PORT should be the port for https
    I don't want to add a new cgi variable called HOST because HOST sounds so generic and it might interfere with something else running in our environment. Or, I don't want to change the plsql cgi environment variable (such as HTTP_HOST) because many developers may use owa_util.get_cgi_env('HTTP_HOST') to get the current server. If the SERVER_PORT is part of the #HOST# then what could I change it to if it needs to be null. If you leave it blank, then the default SERVER_PORT comes from the CGI variables.The value of HTTP_HOST is wrong anyway and points to your internal web server, but I assume your developers actually want to get the host name of your external web server if they use it to generate absolute URLs. That's why I wouldn't bother and set it to the correct host name.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • Finite pulse-trai​n generation with variable time lapses with NiDAQmx

    Being a newby in Labview and NiDAQmx, I find it tedious to program the application I need to drive my experiment : I want to generate a finite pulse train, with variable delays between two consecutive pulses. These delays are known before the experiment starts, summurized in a table (element 0 decribes the time lapse between pulse 0 and 1, element 1 between pulse 1 and 2 ...). I would like to use NiDAQmx to program this. I had in mind the following scheme : two counters, first one counting time between pulses, the second one generating the pulse once "counter one" has finished his job. What I don't figure out is how to reprogram "counter one"'s register, without introducing unwanted delays in the time
    sequence of my finite pulse train. I am using a 6052E DAQ, and I want to generate delays in a same pulse train ranging from 1 microsecond up to 20 seconds.
    Thank you for ANY help :-)

    Hello !
    Well, I will try to be more precise while answering your questions. But first let me thank you very much for your help : your comments, questions and remarks are very helpful to help me shape my project, as you shed light on particular problems I strictly had no idea before !
    1) I can certainly get on well with digital output as my flash device is triggered by TTL signals.
    2) The lighting device is home-made, and I think it will be better for my needs to produce light throughout the duration of the input at the “on” level. In any case it will be driven by TTL-like signals. The intensity is manually set, so no analog control is required.
    3) I will use Labview to collect the experimental data. The signal will be sampled during the light pulse : the rising edge of the TTL-like output signal will trigger both the lighting device and the data acquisition, the latter being stopped on the falling edge. The light emitted by the lighting device is called a “probe” for the following reasons : the photons are absorbed by the photosynthetic sample and “immediately” re-emitted at a longer wavelength. A photodiode acts as a signal transducer, and I monitor the intensity of this fluorescence. Knowing precisely when light pulses occurred after the initial start excitation (which is also a brief pulse of light but of a much greater intensity than the “probe” light) and the intensity of light emitted during theses pulses, I can reconstruct the kinetic of fluorescence decay. This kinetic reflects the behaviour of my biological sample. Thus no continuous acquisition is required as between two light pulses there is nothing to monitor. And all the half-time reaction are timed relative to the same “start” excitation as they reflect a jump sequence of an electron extracted by the “start” excitation : first jumps are quick ones (half-time in the 10 �s range) and last jumps are slow ones (half-time in the 1 s range). With respect to these kinetics, I would like a 1 �s precision. If not achievable, I could skip the quickest jump (but it would be a pity) and focus on the second one which has a 10 ms half-time reaction and a 100 �s precision would then be enough. But as we say in French : “Qui peut le plus, peut le moins !” (roughly meaning that when you can achieve the best, you easily can do the least). This precision relates to the position of one flash with respect to the others. I don’t need to be very precise on the duration of each individual light pulse : a typical value is 100 �s duration, but I can get on well with 90 �s or 110 �s, my data being an average of the light intensity emitted during the light pulse). All I want to know precisely is when it is fired.
    4) Concerning the hardware, I already have a NI 6052E DAQ board, and unfortunately my laboratory cannot allow me to spend more money on this. I also have a fast acquisition board (IMTEC T3012) I intended to use to acquire my photodiode signal in place of the 6052E A/D converter. It has an old Labview driver, and I managed to upgrade it to suit my needs. It has an onboard segmented memory and can keep track precisely (it has a 60 MHz sample clock) of a trigger event. I am wondering if I can overcome the timing precision issue with this board, knowing that I strictly don’t care that flash n�1 is triggered at (t0 + 10 �s) or (t0 + 11 �s), provided that I know it, allowing me to place precisely my data point on the time scale. I can program the number of memory segments (i.e. the number of light pulses) and each one is filled with data coming from the photodiode upon receiving the rising edge triggering the light pulse. The precise date at which each triggered is received is stored in the board memory, allowing time reconstruction.
    I do hope this is much clearer than my previous attempts ! Believe me, it is quite hard to leave biology for a while and enter the cryptic world of data acquisition !
    Gritche

  • How to create "time sheet" bar chart?

    Hi Experts,
    I am using Crystal Reports 2008 and I would like to ask the steps to create a time sheet liked bar chart with following information:
    Imagine I collected the CPU usage of a computer every 30 seconds.
    In the report layout, X-axis should be the time of date. Such as 00:00, 06:00, 12:00 and 18:00. Y-axis should be the exact date. Such as 2009/05/01 to 2009/05/31. Highlight color should be applied to identify the usage. Such as <30% is gray, 30~70% is blue and >70% is red.
    Here is my target layout: [timesheet|http://img200.imageshack.us/img200/1292/timesheet.png]
    I tried to use bar chart template but crystal report sum up the total duration, not the exact time. When using Gantt chart, it almost fulfilled my requirement. But the bars of same date is not aligned horizontal, just like stairs.
    Thanks a lot for help!
    Regards,
    Albert Lai

    Thank you for reply!
    I tried "horizontal stacked bar chart" but it still have problem...
    Let's see my screen dumps: [Chart Expert - Data|http://img514.imageshack.us/img514/6595/timesheet2.png], [Chart Expert - Highlight|http://img411.imageshack.us/img411/1924/timesheet3.png], [Result|http://img269.imageshack.us/img269/8195/timesheet4.png]
    Is that no one will use Crystal Reports like my sample?
    Regards,
    Albert Lai
    Edited by: Albert Lai on Jun 4, 2009 3:24 PM

  • Slideshow issues with variable time for each picture

    Hi all,
    I've migrated from AS1 to AS3, and boy, a lot has changed...
    Anyhow, to learn and understand AS3, I'm modifying a slideshow I found through thetechlabs. I want it to play SWF as well as JPG. These files are passed through an XML file. I added an element called <delaytime> to the XML file that replaces the standard time a photo is shown in the slideshow.
    I modified the onSlideFadeIn() function as follows:
    function onSlideFadeIn():void {
         slideTimer.removeEventListener(TimerEvent.TIMER, nextSlide);
         slideTimer = new Timer(xmlSlideshow..file[intCurrentSlide].@time);
         slideTimer.addEventListener(TimerEvent.TIMER, nextSlide);
         if(bolPlaying && !slideTimer.running)
         slideTimer.start();
    However, when I run it, I get this error message:
    ## [Tweener] Error: [object Sprite] raised an error while executing the 'onComplete'handler.
    TypeError: Error #1010: A term is undefined and has no properties.
    at slideshow_fla::MainTimeline/onSlideFadeIn()
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at caurina.transitions::Tweener$/::updateTweenByIndex()
    at caurina.transitions::Tweener$/::updateTweens()
    at caurina.transitions::Tweener$/onEnterFrame()
    It stops at the first picture of my slideshow. When I push the 'next' button it displays the next pic, but I get the same error message again.
    When I comment out this line:
    slideTimer = new Timer(xmlSlideshow..file[intCurrentSlide].@time);
    the slideshow runs OK, but without the delaytime specified in the XML file.
    I'm lost here, what am I missing?
    Any help to get me back on track is highly appreciated!
    Thanks a bunch in advance,
    Dirk
    Here is the complete AS, should you need it:
    // import tweener
    import caurina.transitions.Tweener;
    // delay between slides
    const TIMER_DELAY:int = 5000;
    // fade time between slides
    const FADE_TIME:Number = 1;
    // flag for knowing if slideshow is playing
    var bolPlaying:Boolean = true;
    // reference to the current slider container
    var currentContainer:Sprite;
    // index of the current slide
    var intCurrentSlide:int = -1;
    // total slides
    var intSlideCount:int;
    // timer for switching slides
    var slideTimer:Timer;
    // slides holder
    var sprContainer1:Sprite;
    var sprContainer2:Sprite;
    // slides loader
    var slideLoader:Loader;
    // current slide link
    var strLink:String = "";
    // current slide link target
    var strTarget:String = "";
    // url to slideshow xml
    var strXMLPath:String = "slideshow-data2.xml";
    // slideshow xml loader
    var xmlLoader:URLLoader;
    // slideshow xml
    var xmlSlideshow:XML;
    function initSlideshow():void {
         // hide buttons, labels and link
         mcInfo.visible = false;
         btnLink.visible = false;
         // create new urlloader for xml file
         xmlLoader = new URLLoader();
         // add listener for complete event
         xmlLoader.addEventListener(Event.COMPLETE, onXMLLoadComplete);
         // load xml file
         xmlLoader.load(new URLRequest(strXMLPath));
         // create new timer with delay from constant
         slideTimer = new Timer(TIMER_DELAY);
         // add event listener for timer event
         slideTimer.addEventListener(TimerEvent.TIMER, nextSlide);
         // create 2 container sprite which will hold the slides and
         // add them to the masked movieclip
         sprContainer1 = new Sprite();
         sprContainer2 = new Sprite();
         mcSlideHolder.addChild(sprContainer1);
         mcSlideHolder.addChild(sprContainer2);
         // keep a reference of the container which is currently
         // in the front
         currentContainer = sprContainer2;
         // add event listeners for buttons
         btnLink.addEventListener(MouseEvent.CLICK, goToWebsite);
         btnLink.addEventListener(MouseEvent.ROLL_OVER, showDescription);
         btnLink.addEventListener(MouseEvent.ROLL_OUT, hideDescription);
         mcInfo.btnPlay.addEventListener(MouseEvent.CLICK, togglePause);
         mcInfo.btnPause.addEventListener(MouseEvent.CLICK, togglePause);
         mcInfo.btnNext.addEventListener(MouseEvent.CLICK, nextSlide);
         mcInfo.btnPrevious.addEventListener(MouseEvent.CLICK, previousSlide);
         // hide play button
         mcInfo.btnPlay.visible = false;
    function onXMLLoadComplete(e:Event):void {
         // show buttons, labels and link
         mcInfo.visible = true;
         btnLink.visible = true;
         // create new xml with the received data
         xmlSlideshow = new XML(e.target.data);
         // get total slide count
         intSlideCount = xmlSlideshow..image.length();
         // switch the first slide without a delay
         switchSlide(0);
    function fadeSlideIn(e:Event):void {
         // add loaded slide from slide loader to the
         // current container
         addSlideContent();
         // clear preloader text
         mcInfo.lbl_loading.text = "";
         // check if the slideshow is currently playing
         // if so, show time to the next slide. If not, show
         // a status message
         if(bolPlaying) {
              mcInfo.lbl_loading.text = "Next slide in " + TIMER_DELAY / 1000 + " sec.";
         } else {
              mcInfo.lbl_loading.text = "Slideshow paused";
         // fade the current container in and start the slide timer
         // when the tween is finished
         Tweener.addTween(currentContainer, {alpha:1, time:FADE_TIME, onComplete:onSlideFadeIn});
    function onSlideFadeIn():void {
         slideTimer.removeEventListener(TimerEvent.TIMER, nextSlide);
         slideTimer = new Timer(xmlSlideshow..file[intCurrentSlide].@time);
         slideTimer.addEventListener(TimerEvent.TIMER, nextSlide);
         if(bolPlaying && !slideTimer.running)
         slideTimer.start();
    function togglePause(e:MouseEvent):void {
         // check if the slideshow is currently playing
         if(bolPlaying) {
              // show play button
              mcInfo.btnPlay.visible = true;
              mcInfo.btnPause.visible = false;
              // set playing flag to false
              bolPlaying = false;
              // set status message
              mcInfo.lbl_loading.text = "Slideshow paused";
              // stop the timer
              slideTimer.stop();
         } else {
              // show pause button
              mcInfo.btnPlay.visible = false;
              mcInfo.btnPause.visible = true;
              // set playing flag to true
              bolPlaying = true;
              // show time to next slide
              mcInfo.lbl_loading.text = "Next slide in " + TIMER_DELAY / 1000 + " sec.";
              // reset and start timer
              slideTimer.reset();
              slideTimer.start();
    function switchSlide(intSlide:int):void {
         // check if the last slide is still fading in
         if(!Tweener.isTweening(currentContainer)) {
              // check, if the timer is running (needed for the
              // very first switch of the slide)
              if(slideTimer.running)
              slideTimer.stop();
              // change slide index
              intCurrentSlide = intSlide;
              // check which container is currently in the front and
              // assign currentContainer to the one that's in the back with
              // the old slide
              if(currentContainer == sprContainer2)
              currentContainer = sprContainer1;
              else
              currentContainer = sprContainer2;
              // hide the old slide
              currentContainer.alpha = 0;
              // bring the old slide to the front
              mcSlideHolder.swapChildren(sprContainer2, sprContainer1);
              //Van hier
              if (currentContainer.numChildren > 0) {
                   var slideObjRef:DisplayObject = currentContainer.getChildAt(0);
                   currentContainer.removeChildAt(0);
                   slideObjRef = null;
              //Tot hier
              // delete loaded content
              clearLoader();
              // create a new loader for the slide
              slideLoader = new Loader();
              // add event listener when slide is loaded
              slideLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, fadeSlideIn);
              // add event listener for the progress
              slideLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
              // load the next slide
              slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));
              // show description of the next slide
              mcInfo.lbl_description.text = xmlSlideshow..image[intCurrentSlide].@title;
              // set link and link target variable of the slide
              strLink = xmlSlideshow..image[intCurrentSlide].@link;
              strTarget = xmlSlideshow..image[intCurrentSlide].@target;
              mcInfo.mcDescription.lbl_description.htmlText = xmlSlideshow..image[intCurrentSlide].@desc;
              // show current slide and total slides
              mcInfo.lbl_count.text = (intCurrentSlide + 1) + " / " + intSlideCount + " Slides";
    function showProgress(e:ProgressEvent):void {
         // show percentage of the bytes loaded from the current slide
         mcInfo.lbl_loading.text = "Loading..." + Math.ceil(e.bytesLoaded * 100 / e.bytesTotal) + "%";
    function goToWebsite(e:MouseEvent):void {
         // check if the strLink is not empty and open the link in the
         // defined target window
         if(strLink != "" && strLink != null) {
              navigateToURL(new URLRequest(strLink), strTarget);
    function nextSlide(e:Event = null):void {
         // check, if there are any slides left, if so, increment slide
         // index
         if(intCurrentSlide + 1 < intSlideCount)
         switchSlide(intCurrentSlide + 1);
         // if not, start slideshow from beginning
         else
         switchSlide(0);
    function previousSlide(e:Event = null):void {
         // check, if there are any slides left, if so, decrement slide
         // index
         if(intCurrentSlide - 1 >= 0)
         switchSlide(intCurrentSlide - 1);
         // if not, start slideshow from the last slide
         else
         switchSlide(intSlideCount - 1);
    function showDescription(e:MouseEvent):void {
         // remove tweens
         Tweener.removeTweens(mcInfo.mcDescription);
         // fade in the description
         Tweener.addTween(mcInfo

    Thanks, but no luck so far...
    With the debugging publish setting on, I get the following error message:
    TypeError: Error #1009: Cannot access a property  or method of a null object reference.
    at  slideshow_fla::MainTimeline/slideshow_fla::frame1()[slideshow_fla.MainTimeline::frame1:12 3]
    Line 123 says:
    trace(xmlSlideshow..file[intCurrentSlide].@time);
    However, when I comment out the trace() line it gives another error  message:
    ## [Tweener] Error: [object Sprite] raised an  error while executing the 'onComplete'handler.
    TypeError: Error #1010: A  term is undefined and has no properties.
    at  slideshow_fla::MainTimeline/onSlideFadeIn()[slideshow_fla.MainTimeline::frame1:118]
    Where line 118 is:
    slideTimer = new  Timer(Number(xmlSlideshow..file[intCurrentSlide].@time));
    Now, according to my Flash manual I bought, I need to 'instanciate' things.  Did I forget this?
    Just can't get my head around this OOP stuff...
    Thanks a bunch for helping me!

  • Time to get charts correct.

    3D bar charts are all very pretty but sometimes people want to represent quantitative data in an genuinely informative way. To this end it is time to provide some simple changes to the way Pages does its graphing in order to provide this resource. (Yeah I know how to use a dozen other tools to do this but it would be nice if Pages (and by extention: Keynote since it is the same underlying software) did this natively.
    Almost all these suggestions pertain to scatter plots:
    1. For scatter plots provide properly scaled axes. This is a simple algorithm guys! Set the scale so that the number along the axes come out close to whole or 1/2 whole numbers.
    2. By default, scatter plots, should show the full x AND y grid. Provide a way to show a grid for minor grid points as an option.
    3. Pick up the titles at the top of the data columns as axis labels.
    4. Provide for a graph title (sure I can work around this with a text box but shouldn't it be built in to every graph?
    5. (low priority) Allow for the inclusion of a simple "trend-line" (as our friends in Redmond call it.) A simple least squares fit and titling of the line on the same graph.
    I like pages. I build complicated documents as handouts for my students. Pages gets all the text flows correct where MS Word just chokes. This graphing stuff isn't hard to fix and should have been right in the first release.
    G5 2Ghz Mac OS X (10.4.7) Pages 2.01
    G3 450Mhz Mac OS X (10.2.x)
    G5 2Ghz   Mac OS X (10.4.7)  

    Websites remembering you and automatically log you on is stored in a cookie.
    * Create an allow cookie exception (Tools > Options > Privacy > Cookies: Exceptions) to keep such a cookie, especially for secure websites and if cookies expire when Firefox is closed.
    Make sure that you do not run Firefox in Private Browsing mode.
    * https://support.mozilla.com/kb/Private+Browsing
    Do not use Clear Recent History to clear the "Cookies" and the "Site Preferences"
    * https://support.mozilla.com/kb/Clear+Recent+History
    Clearing "Site Preferences" clears all exceptions for cookies, images, pop-up windows, software installation, and passwords.
    *http://kb.mozillazine.org/Cookies

  • Time-Series in charts

    Hello everyone,
    Being new to flash/flex/actionscript, I have a hard time
    doing what I would like to do and hope to get some help from you.
    I'd like to generate a <mx:ColumnChart/> where the
    x-axis is a <mx:DateTimeAxis/> and would display only data
    points that are only within X minutes to the past (for example,
    only display data points for the last 15 minutes). The chart
    dataProvider get updated every 30 seconds or so through a
    HttpService.
    I could not seem to find a flavor of DateTimeAxis or
    Timebased data collection that would automatically eliminate data
    points that are older than X minutes.
    To achieve this, I currently have to set a timer in the
    application, which on every tick will trigger invocation of a
    function that would traverse the dataProvider and manually
    eleminate that data points that has xField value (the time value)
    older than 15 minutes and trigger the chart re-rendering.
    Please help advise me a any other cleaner way to perform what
    I would like to do.

    thanks, and checking for aged iterms (items older than x
    minutes) at the time I add new items to the chart is actually what
    I ended up doing.

  • Real Time Monitor Tool - Charting

    Afternoon all,
    I am using RTMT 8.1 to monitor Call Activity on a specific H323 gateway within our voice network. I've produced the chart which is correctly showing me real time information over a period of a couple of minutes. However, I want to display the chart over a period of 24 hours.
    Do I need to change the polling rate to 30 or 60 minutes and allow the chart to run for 24 hours before presenting it? Is there any way of producing historical data on RTMT? Any help would be apprecaited.
    Regards, Jamie

    Hi Jamie,
    Indeed in RTMT itself you should be able to achieve it by setting in counter properties "No. of data points shown on chart" to 50.
    Next form Edit > Polling Rate. Set it to 30 minutes. Now it shown over 24 hours but with sample rate of 2/hour it may not really be useful.
    So it would be better to have a higher sample rate and use the "Start counter logging" option to log the results to a locale csv file. So you can review the data afterwards with permformance log viewer or with Windows permance (perfmon.msc) from that locale csv file. Though you would need to leave RTMT running to log this information.

  • Manipulating custom measure variable inside a line chart

    Hie Guys,
    I have a line chart in my report that contains 2 custom measure variables & 1 measure object from the Universe in the Y axis and one dimension object - "Month" in the X axis.
    Formula for the custom measure variables are - 
    If [Month] = "Jan" Then 45
    ElseIf [Month] = "Feb" Then 65
    ElseIf [Month] = "Mar" Then 88
    And so on..........
    Now, I have an input control in the report for "Project Type" (Development & Improvement)
    I want the chart to behave as described  below.
    If (Project Type = "Development") Then only display measure object 1 in the chart
    If (Project Type = "Improvement") Then only display measure object 2 in the chart.
    Right now, the input controls are displaying all measure objects in the chart when I click on them.
    Is there a way I can get the above mentioned functionality in my report? I am using Business Objects 4.0  SP6.
    Could anyone please help me solve the problem? Thanks.

    Hi,
    Add Two Line Charts in Report one with [Measure Object 1]
    & another with [Measure Object 2] .
    Now Create Variable for User Selection .
    Selection = ReportFilter([Project Type])
    Now in Hide When Property of chart (Right Click on Chart --> Format Chart )

  • Displaying Correct Time in XY Chart

    I have an XY Chart displaying current over time.  A measurement is made every x seconds.  I would like the x axis to represent how many seconds total the measurement was made (ie, the first point at 0 seconds, the second at 5 seconds, third at 10 seconds assuming 5 second intervals).
    I want my plot to display the data after it has recorded.
    My problem:
    If I format the x-axis to absolute time, it always displays the start time as 07:00 PM 12/31 and increments it by one second regardless of how long the interval was.
    If I format with to relative time, it increments the seconds by 1 second regardless of the interval.
    Maybe I need to use a more sophisticated graph, but it was recommended that I use a chart because I had problems with Labview closing/crashing in the middle of an experiment.
    I included my code.  Please let me know what you recommend.

    _natalie_ wrote:
    Thanks so much for all your help!  I find Charts really confusing, but now I understand how to use them with waveforms much better.
    I am not sure why I was getting that error, but I opened up an older version of my code, added those few changes and now I have two plots.  1 plots records the current against the date and time, and one records the current against the total number of seconds.  I didn't realize that the total number of seconds counts from 1904, but I was able to work around that by substracting the current time and from the amount of seconds since then and it is working.  I was able to clear my plots by going to File-VI Properties-Execution and clear indicators when called.
    Thanks again!  Always very helpful
    I ran your application that you attached most recently and it seems to function fine. I'm not sure why you were having trouble. Yeah, just make sure you're clearing that chart of old data.
    You can right-click the chart and select Properties > Display Format to change the way that x-axis looks. You can select Absolute Time instead of Relative Time (current settings) to make it look like you want and ignore that thousands of hours since 1904.

Maybe you are looking for

  • Problem in designing user interface

    Hi I am new to weblogic workshop.Please guide me regarding designing user interface.I had tried form weblogic help but i wasn't able to do it .I am giving the whole form below .i need to finish it asap,please reply " REQUESTOR INFORMATION(with black

  • My skype account is linking to someone else. How d...

    It seems to be a problem with Facebook connection. My Facebook ID is linked to my skype account. I tried sending a message to a friend and the message comes to me. Now, other people that send messages to her, it seems to come to my account. How do I

  • Calling packaged procedure from a URL link

    I have created a custom APEX application the will allow us to dynamically build help screens for the pages we create with APEX. In doing this I have created a procedure within a package called "comi_help_util.show_help". This procedure uses the "htp.

  • Forefox is not printing using the specified margins.

    Page setup margins are specified as .5 inch width. Page is printing with an effective .88 inch margin. That throws off the formatting causing the document (an invoice generated by our web based software) to print incorrectly. The print preview on our

  • Worklfow step being skipped

    I have a workflow based on notifciations that when it reaches the step display notification it appears to skip over it.  IN the log you can see that the path has reached the end and passed through the step that calls the method to display the task.