Requests & Reports Forum

This forum is the primary communication channel between the LiveGraph users and the developer team.
Use this forum for:

  • telling us what you use LiveGraph for (do you want to be included on the reference page?),
  • reporting bugs,
  • providing user feedback,
  • requesting features,
  • requesting support for issues that could not be resolved by the community,
  • all other communication with the LiveGraph developer team.
This static mirror may not contain the latest posts!
Click on the title of any post on this page to get to the corresponding post on the actual forum.

The purpose of this forum mirror is to increase the indexing coverage of our forums by the major search engines, and thus to help our users finding solutions to their questions quicker and easier. For the most recent posts, extended browsing, posting, advanced search and other interactive capabilities, please visit the actual user - developer forum hosted on SourceForge.

Forum mirror

By: Thomas Meyer (tpm123) - 2008-09-09 14:41
 
I currently have a perl GUI from which I launch LiveGraph. I will often launch it a few times for different datasets so I have multiple instances running. I would LOVE it if the only window that popped up on launch is the plot window. When the settings windows pop up, I have to close them, since I don't want them hogging real estate, which is a nuisance. Is this something that it can currently do, and if not, could someone pretty please make the small modification so that when "save setttings" is selected, it notes whether the correspondinhg window is displayed and saves that setting as well? 
 
Thanks! 
 
Thomas 


    By: LiveGraph team - 2008-09-09 20:21
    Hi Thomas, 
     
    This issue was already raised in a previous thread: 
    http://sourceforge.net/forum/forum.php?thread_id=1991959&forum_id=673036 
     
    Currently, there is no way to disable specific windows on start-up, when calling LiveGraph as a separate process. We plan to add an option of type "Save GUI settings" or similar in one of the next releases, but we are not sure when we will make it. 
     
    What you can do in the meantime, is to write a very short Java application that starts LiveGraph and immediately closes all the windows you do not want. You can then call that from your application. 
     
    Cheers!

    By: Thomas Meyer (tpm123) - 2008-09-10 15:14
     
    Thanks for the very timely response. I guess your idea to call a short java program will work, but I'm not much of a java programmer. I can certainly write something which calls it, but how do I get hooks into the windows I want to close? Can you give me a snippet here, and I'll take it from there?  
     
    As far as adding an option like "Save GUI settings" goes, it seems like that would be an extra option that doesn't really need to exist. You already have 3 "Save ... settings" choices. That's enough! For each window, you have options of {LOAD,SAVE,DISPLAY}. If you simply took note of the state of the checkbox for "display ... settings" when the user selects the corresponding "Save ... settings" dialog, you can get the job done without adding any user options. If you also feel like saving any resizing or positioning of windows, you could do that too, but again, this wouldn't need an extra "Save GUI settings" option.

      By: LiveGraph team - 2008-09-12 18:34
      ** Saving Window States. 
       
      Quite on contrary. The key issue to understand here is the difference and the separation between the business logic (in this case the process of plotting data) and the presentation logic (in this case the display of settings windows). These are two very separate things and mixing them up will almost always lead to difficulties. For instance, what if the layout within the windows changes. Should this invalidate the actual settings files? Certainly not. Saving the state of GUI is certainly a very different business case than saving the sate of a group of related settings and should be handled strictly separately. It is, however, quite a useful functionality, and it is on top of our list for the next release that will actually add features. At the moment we are keen on stabilising the current feature set and getting out of beta. 
       
      ** Code snipplet. 
       
      I am now on a project overseas and very short on time, but I'll forward your request to other LiveGraph team members. In the meantime consider the class org.LiveGraph.demoDataSource.LiveGraphMemoryStreamDemo (version 2.0.beta01). In lines 67-69 you can see how you can start LiveGraph from within Java. 
       
      Now consider the documentation at 
       
      http://www.live-graph.org/javadoc/complete/org/LiveGraph/LiveGraph.html 
       
      and  
       
      http://www.live-graph.org/javadoc/complete/org/LiveGraph/gui/GUIManager.html 
       
      You can use something similar to the following statement to hide LiveGraph windows: 
       
      lg.guiManager().setDisplayGraphSettingsWindows(false); 
       
      Post here is you have questions. 
       
      Cheers..

By: Nobody/Anonymous (nobody) - 2007-07-13 18:26
Hello,  
Just discovered LiveGraph and it looks mostly perfect for my application. I have been monitoring thermocouples and doing temperature plots. Written and played with lots of graphing software mostly under python. However, none have been really optimal for me, just a simple slow changing time series graph. What I have been doing as of late is, is just running a Gnuplot script on the data file every 3 mins or so, works, but its herky jerky and moves around the screen over time.  
 
Anyway thanks for this, I am going to try it out, just wondering if its possible to let one of the data types in the CSV file be a time stamp. So I could plot temperature change as it relates to time. From what I can gather only strings that can be converted to integer work at the moment. 
 
Thanks again so much for all your effort, this is a great new find, and believe me I have looked, 
ED


    By: Nobody/Anonymous (nobody) - 2007-08-03 01:11
     
    It truly is a perfect application for real time debugging. I export all my debug information periodically to another machine using csv format and Livegraph plotted it extremely well.  
     
    I was really impressed by the functionality provided by LiveGraph. 
     
    However I have the same problem. My X axis is Date Time series in format "11/11/1970 8:36:00 AM" which LiveGraph is unable to plot. 
     
    I look forward to the next version of LiveGraph with capability to plot Date time.  
     
    It would be a boom to real time debugging. 


    By: LiveGraph team - 2007-08-08 07:55
    Hi there! 
     
    The problem with the time stamp is that LiveGraph needs a way of knowing whether to interpret the data values as numbers or time stamps. We would like to avoid extending the file format to include type information because we want to keep the format as simple as possible and to ensure compatibility with other CSV processing applications. We are currently thinking of ways to integrate time stamps, and we would be grateful for any suggestions from LiveGraph users! Please use this forum. 
     
    Thanks!

      By: LiveGraph team - 2007-08-08 08:06
      A possibility to tell LiveGraph that a data column in the CSV file should be interpreted as time stamps is to introduce a new option in the transformation column in the Data Series Settings window. 
       
      The problem with this is that it would require serious changes to the program architecture: 
      At the moment, the data is first read into cache under the assumption that all data values are numbers (i.e. the text in the file is parsed into numbers immediately when read from the input stream). The transformations specified in the data series settings are applied at a latter stage - i.e. the metaphor is that the Data Series Settings define how to transform the data, not what the data is. 
       
      We will be grateful for any comments on this topic! 
       
      The way it looks in the moment, we will begin working on the time stamp issue in late September. Post your thought on the here. 
       
      Cheers))

    By: LiveGraph team - 2008-05-25 05:20
    As of versions 1.13 and 1.14 the following feature has been added: 
     
    A new type for the x-axis is available in the Graph Settings Window. 
    You can set LiveGraph to interpret the real values of any of the data series as seconds times 10 raised to some specified power P, where P can be any real number. For example, if P = -3, then the values of the specified series will be interpreted as seconds * 10^(-3), which means milliseconds. If you make use of that option, the labelling of the x-axis will be automatically formatted as timestamps (of the form "hh:mm:ss.xxx"). 
     
    This means that you cannot put timestamps directly into the datafile. But if you convert the timestamps into seconds (or any fraction of seconds) and put the seconds into the datafile, you can easily plot against a timestamp-formatted x-axis. 
     
    Direct support of timestamps in the datafile is not planned in the near future due to serious changes it would require. However, the above approach should be suitable in most cases. 
     
    We hope that it is helpful! 


    By: Thomas Meyer (tpm123) - 2008-09-09 17:37
    That is an excellent solution. Thank you. It solves the problem nicely without complicating the interface. It took me a while to figure out that if I wanted my graph to start at 8:30 I need to start couting from 30,600, but it works as expected. Except LiveGraph says that the number is supposed to be in seconds, and I think it means miliseconds, like you state here. Once I put in the 0.001 it worked perfect. Oh, and when the scale is on the order or minutes (or longer), it would be nice to see 8:45:00 instead of 8:45:00.123. Some sort of auto-scaling of the precision displayed. Other than that, thanks again!

    By: LiveGraph team - 2008-09-09 20:33
    Hi, 
     
     
    > That is an excellent solution. Thank you. 
    > It solves the problem nicely without complicating the interface. 
     
    Cheers.) 
     
     
    > It took me a while to figure out that if I wanted my graph to start 
    > at 8:30 I need to start couting from 30,600, but it works as expected. 
     
    Yes, tutorials are needed and work in in progress. 
     
     
    > Except LiveGraph says that the number is supposed to be in seconds, 
    > and I think it means miliseconds, like you state here. 
    > Once I put in the 0.001 it worked perfect. 
     
    Can you please clarify, I am not sure what you mean here. When you select X-axis type to be "Data series as seconds" in the Graph settings window, the "Power" input box at the bottom of that window becomes available. In there you need to put the 10-power of seconds that is used in your data file. I.e., if you use milliseconds, you need to put "-3" (since 1 millisecond = 10^-3 seconds). Did you do that? 
     
     
    > Oh, and when the scale is on the order or minutes (or longer), 
    > it would be nice to see 8:45:00 instead of 8:45:00.123. 
    > Some sort of auto-scaling of the precision displayed. 
     
    This is a good point. I'll discuss it with the team to see what should be the desired behaviour. 
     
    Cheers! 
     


    By: Thomas Meyer (tpm123) - 2008-09-10 15:10
    It turns out I wasn't using the tools correctly. I was entering 0.001 instead of -3. Sorry about the noise. Everything is worknig fine. 
     
    Thomas 


By: Nobody/Anonymous (nobody) - 2008-08-30 08:17
Is it possible for feed data to livegraph thru and udp or tcp connection ? 
 
Rgds, 
Karl


By: Robert Ross (robross) - 2008-08-25 15:02
Another fantastic feature would be the ability to graph multiple files simultaneously. One of my biggest challenges when working with livegraph is getting the data into a format parseable by Livegraph. For example, using something like tcpstat to graph network data is not all that difficult unless you want to graph multiple flows simultaneously. At that point, you would need to graph multiple output files at the same time, or find a way to merge the files prior to reading in Livegraph. Doing this in real-time is even more problematic.


    By: LiveGraph team - 2008-09-09 20:09
    That is correct, but this is currently problematic. 
    What you need to consider is that is we added a multi-file feature, it would have to deal well with any set of files selected for display. This means we would have to be smart when: 
     
    - the files have differently names data series names vs. clashing data series names 
     
    - the files are written by applications with different speeds 
     
    - some files have missing rows that must be synchronised 
     
    - any many many more issues 
     
    Incorporating this functionality is a very major update and we are not focusing on this at the moment. We prefer to concentrate on the evolution on the program core to allow plug-ins for data reading. This will allow easier integration of new features (such as this) by other developers. To date, however, we do not have any time estimates (even rough).

By: Robert Ross (robross) - 2008-08-25 14:59
One thing which seems to be missing from Livegraph -- at least I haven't figured out how to do it -- is to set it up to show a rolling time series on the X axis. Currently, Livegraph continuously squashes the entire set of X axis data into the available window space. It would be nice to, for example, show a rolling view the most current 10 minutes from a tailed log of time-series data.


    By: LiveGraph team - 2008-09-09 20:03
    That is easily done, however not per minute, but per number of data points. 
    Just select "Show tail data" in the data settings window. As a result the graph will always show the last 500 data points (that is because your plot window is rarely wider that 500 pixels anyway).

By: Nobody/Anonymous (nobody) - 2008-07-23 13:43
Graphing application works well. I have data being created at very high rates and need it graphed real time. There is a large drawback from reading and storing data to a file. The file's size becomes overwhelmingly large. I need LiveGraph to listen in on some socket preferably. Is this possible to implement? 
 
If you can not provide this in a release very soon, can you at least point me in the right direction regarding which source files actually read in from the specified data file so that I can modify them personally?  
 
Please feel free to email me at dimab0 AT yahoo DOT com 
 
Thank you. 
~Dimitry


    By: LiveGraph team - 2008-07-23 14:52
    Hi, 
     
    this depends on what programming language you use. 
    LiveGraph cannot currently read from a socket, but as you are mentioning it, it is really missing functionality and should be included. Unfortunately, we have all hands full with other things now and it does not look like this kind of thing will be implemented within the next month or so. 
     
    However, if you are using Java this will not be a problem for you as LiveGraph can read data from a special version of a piped IO stream that pipes data from an output stream to an input stream through a memory buffer. We are currently working on a tutorial on this, but this will not be ready for a few weeks due to time constrains. What follows is a very brief description of how to do that. Try to play around and post here is you have any questions. You will need version 2.0.beta01 for this. 
     
    // ... your application ... 
     
    // Init LiveGraph: 
    LiveGraph lg = LiveGraph.application(); 
    lg.execStandalone(); 
     
    // ... 
     
    // Set some preferred data series settings (optional). 
    // You can also set other settings in similar manner: 
    DataSeriesSettings dss = lg.getDataSeriesSettings(); 
    dss.setShow(0, false); 
    dss.setShow(1, true);  
    dss.setShow(2, true); 
    dss.setColour(2, Color.RED); 
    // ... 
     
    // Switch to memory stream mode and obtain the corresponding data stream writer: 
    DataStreamWriter dataOut = LiveGraph.application().updateInvoker().startMemoryStreamMode(); 
     
    // Set up data series to plot: 
    dataOut.addDataSeries("iteration"); 
    dataOut.addDataSeries("number of foos"); 
    dataOut.addDataSeries("proportion of boos"); 
    dataOut.addDataSeries("temperature on moon"); 
    // ... 
     
    // Your data producing loop: 
    // (note that SourgeForge forum will destroy indent tabs) 
    int iteration = 0; 
    while(youApplicationWantsToProduceMoreData) { 
     
    // Do your calculations: 
    int foos = getYourFoos(); 
    double boos = getYourBoos(); 
    double moon = veryCold(); 
     
    // Write data to data writer and do not forget to commit/write the dataset: 
    dataOut.setDataValue("iteration", iteration); 
    dataOut.setDataValue("number of foos", foos); 
    dataOut.setDataValue("proportion of boos", boos); 
    dataOut.setDataValue("temperature on moon", moon); 
    dataOut.writeDataSet(); 
     
    // You can initiate a plot view update now, but you normally only do that what you expect that 
    // the user sets a too slow interval in the GUI: 
    LiveGraph.application().updateInvoker().requestUpdate(); 
     
    // ... 

     
    // Wrap up: 
    dataOut.close(); 
    LiveGraph.application().updateInvoker().endMemoryStreamMode(); 
     
    // Wrap up your application... 
     
    // Shut down LiveGraph engine: 
    LiveGraph.application().disposeGUIAndExit(); 
     
    // End... 
    // ... 
     
    Basically, this is the idea. Please note that I just typed the above code into the forum window, I did not test it, so there may be typos of bugs, but the idea should be clear. Do let us know if it helps and if you have any further questions. 
     
    Cheers.. 
     
     
     
     
     
     
     
     
     


By: Nobody/Anonymous (nobody) - 2008-07-18 16:25
hello,  
 
I am trying to run LiveGraph on my machine, running Mac OS X, version 10.4.11 I downloaded the latest stable version as a .zip, unzipped it and typed java -jar LiveGraph.1.14.Application.bin.jar (these steps are the ones you guys advise to follow on the installation manual). I immediately get an error saying  
-------------  
java.lang.NoSuchMethodError: java.text.NumberFormat.setRoundingMode(Ljava/math/RoundingMode;)V  
at com.sofnetConsult.utils.string.StringTools.getSingletonNumberFormatter(StringTools.java:78)  
at com.softnetConsult.utils.string.StringTools.parseNumber(StringTools.java:307)  
(etc)  
-------------  
I am probably mising something very obvious here, but I can't find it described on the Manual. Any help would be very appreciated...  
 
thanks a lot!!!!  
 
Luis


    By: LiveGraph team - 2008-07-19 15:52
    What version of Java do you use?

    By: Nobody/Anonymous (nobody) - 2008-07-20 16:20
    I am using Java version 1.5; there is no version 1.6 for Mac. However, I was told that version 1.6 is just needed for some sophisticated point-and-click functionalities on the graphs.  
     
    thanks,  
     
    Luis

    By: Nobody/Anonymous (nobody) - 2008-07-21 19:20
    Thank you for the answer. LiveGraph just launched as expected; I will start using it and let you gusy know how it goes.  
     
    cheers,  
     
    Luis

      By: LiveGraph team - 2008-07-22 14:45
      Cheers, 
       
      please do let us know if any problems occur. 
       
      We also encourage you to use version 2.x instead. 
      It has a number of new features and any feedback on the beta version would be very valuable.

By: LiveGraph team - 2008-07-21 16:53
LiveGraph versions 1.1.4 and 2.0.beta01 come with the SoftNet-Consult Java Utility Library version 2.01 that contains a bug: a hidden dependency on Java 1.6. Because of this an error occurs when starting LiveGraph under Java version 1.5. An updated version of the utility library is available. An update for LiveGraph will be released in the near future. This post describes how LiveGraph can be patched to work with Java 5 in the meantime.  
 
Affected LiveGraph versions: 1.1.4 and 2.0.beta01.  
Affected Java versions: 1.5.x.  
Java versions 1.6.x are NOT affected.  
 
 
When starting LiveGraph under Java 5 the following error occurs.  
 
java.lang.NoSuchMethodError: java.text.NumberFormat.setRoundingMode(Ljava/math/RoundingMode;)  
at com.softnetConsult.utils.string.StringTools.getSingeltonNumberFormatter(StringTools.java:78)  
at com.softnetConsult.utils.string.StringTools.parseNumber(StringTools.java:164)  
at com.softnetConsult.utils.string.StringTools.parseDouble(StringTools.java:307)  
at org.LiveGraph.settings.GraphSettings.getHGridSize(GraphSettings.java)  
at org.LiveGraph.plot.Plotter.<init>(Plotter.java)  
at org.LiveGraph.LiveGraph.exec(LiveGraph.java)  
at org.LiveGraph.LiveGraph.main(LiveGraph.java)  
 
 
While no LiveGraph update to fix this is yet released (expected in the next few weeks), proceed as follows:  
 
1) Download the SLIM version 2.02 of the SoftNet-Consult Java Utility Library from http://java-tools.sourceforge.net/  
 
2) You will obtain a file with the name "SoftNetConsultUtils.2.02.slim.jar".  
 
3) Go to the LiveGraph installation directory. It contains a file with the name "SoftNetConsultUtils.2.01.slim.jar". Delete that file.  
 
4) Move the downloaded file "SoftNetConsultUtils.2.02.slim.jar" to the LiveGraph installation directory.  
 
5) Rename the file just moved from "SoftNetConsultUtils.2.02.slim.jar" to "SoftNetConsultUtils.2.01.slim.jar".  
 
6) Done. You are now able to run LiveGraph with Java 5.


By: Nobody/Anonymous (nobody) - 2008-07-07 21:16
hi, i posted in the other section but thought I'd send this towards the developers. I'm retrieving and formatting serial data with a program I'm writing in NS Basic, and the Livegraph and NS Basic file operations apparently don't play well together. If it is being used by livegraph then my program can't access it, and vice versa. It would be great to just pull the data off of the windows clipboard since I can put my data up there, and bypass the hard drive all together. Is this possible? 
 
Thanks, 
Stewart


By: Nobody/Anonymous (nobody) - 2008-06-27 15:08
Hi, is there a way as to make LiveGraph reading in the data, displaying the graph, saving it in the form of a jpg file and quitting, all that automatically? 
Thanks, Dieter


By: Nobody/Anonymous (nobody) - 2008-06-25 04:06
Hi! First - serious thanks for developing this software. It's incredibly useful. Also, I'd like to preface my apologies if these requests have come up before (but I didn't see any in some brief browsing). 
 
Here We go. 
 
Line-thickness / point-display : Right now the line thickness is skinny and I couldn't find a setting to change this. It's normally not a problem, but I'm actually using the software for demo-ing a piece of hardware and am trying to film my screens (can't use screen-capture software due to some processor heavy stuff) - So getting the lines to come out well in film is tough! So something similar to the plotting options that MATLAB comes with would be quite cool. 
 
Best! 
Scott 
 



    By: LiveGraph team - 2008-06-25 07:30
    Hi Scott, 
     
    unfortunately, changing the line thickness is not possible at present. 
    You can choose a contrast-full colour for your plot and maybe try to lower the screen resolution - it may come out better. 
     
    Cheers..

By: Nobody/Anonymous (nobody) - 2008-06-24 08:04
Hi, 
Is there any possibility to plot TAB delimited file? 
e.g.: 
 
Time IGP P3 P2 P1  
 
10:17:03 0 99 55 34 
10:17:09 0 99 55 34 
10:17:15 0 99 55 34 
10:17:21 0 99 55 34 
10:17:27 0 99 55 34 
10:17:34 0 99 55 34 
10:17:39 0 99 56 34 
10:17:45 0 99 56 34 
etc. 
 
Thanks in advance 
Oldrich


    By: LiveGraph team - 2008-06-24 10:45
    Yes, for that you need to add a "data values separator definition line" at the top of your file. 
    (see http://www.live-graph.org/ref/dataFile.html) 
     
    Note that the example you provided would not work because the timestamps are in an incompatible format. 
    For some info about dealing with time stamps see: 
    http://sourceforge.net/forum/forum.php?thread_id=1777140&forum_id=673036 
    and 
    http://sourceforge.net/forum/message.php?msg_id=4984758 
     
    Of course, if you do not plot the time column and do not use it as the x-axis you will not have a problem. 
     
    Here is an example of a tab-delimited file: 
    (presumably the SourceForge forum will display the tabs as single spaces, but if you copy and paste the following into a text editor and then search and replace spaces by tabs you will see what I mean) 
     
    ## ## 
    X X*X 
    1 1 
    2 4 
    3 9 
    4 16 
    5 25 
    6 36 
    7 49 
    8 64 
    9 81 
    10 100 
     
    Cheers.. 
     


By: Nobody/Anonymous (nobody) - 2008-03-31 17:12
Firstly, nice graph application. 
However, currently I have a few issues: 
1) I can' seem to get x-axis values to be whole integers. My x-axis values will be 1, 2, 3 etc all the way to a finite number, such as 1000. 
 
However, I get whatever you wish to call it, but labelled values is the best way to describe it, on the x-axis which are 7.524, 11.234 etc. Maybe I'm missing something here, can't believe no-one else has mentioned it, but just thought I'd point this out. If it's configurable to be whole numbers, then fair enough - just currently I haven't been able to make it so. 
 
2) No axis labels for either x or y axis. I was always under the impression that graphs must have labels for their axis, so I assume I'm missing something here again - but trawling through the documentation repeatedly, I cannot find it. 
 
3) Ability to start the application without some windows being open. If I set the configuration options for startup, then why would I need all 4 windows opening? You can close them once open, you can even close them whilst running from the main application itself, but why can you not make it start the main application up with some options that disables those windows first? That way, I can use it without having 4 windows pop up, just two... the plot, and the legend essentially. 
 
Hope i've not missed settings for all these, if so, it wasn't clear!


    By: Nobody/Anonymous (nobody) - 2008-04-02 10:15
    Found startup settings not long after the first post, no idea how on earth they were missed to be honest!

    By: LiveGraph team - 2008-06-21 03:03
    Hmm, I think I missed this post in the past. 
    So: 
     
    1) Round values for axis labels: 
    This has been resolved in Version 1.14. 
     
    2) Labels for the axes: 
    I assume that you mean labelling the axes with the names of the data series, as the values labels are working fine. 
    A primary objective of LiveGraph is to provide a clear and concise interface for preliminary data analysis, image export is a secondary feature. So far we have sacrificed axis labelling in order to make the plot area less cluttered. During "normal" work you know what is on the axes (you see it in the graph settings (for the x-axis) and in the series settings (for the y-axis) windows). I guess, for image export, axes labelling would be important, so we could make it an optional feature in future. For the x-axis, it will be easy to do. But the y-axis is more difficult, as in most use-cases of LiveGraph, several data series will be displayed at the same time, each with it's own values transformation function. 
     
    3) All windows opening at start-up: 
    From the version 1.15 (planned in the next 14 days) the main window will become a message window and will be closeable. The menu will be moved to the plot window, which will act as the main window. In future releases, we would like to remember window positions and open/closed states when you close LiveGraph and restore them when you open it again, but this will not be done on time for the next release (which is planned in the next 14 days). 


    By: Nobody/Anonymous (nobody) - 2008-06-20 14:27
    Any axis label potential for future releases? How about title of the graph as well, it'd be nice if you could then just save graph to an image, and print it out - without then having to write all over it for labels, axis and legends. 
     
     
    Additionally, when you hover over a plot, you get the circle. It appears you get the values of the cursor point - but why not the values of the underlying plot point? Obviously this may not be that easy to do... I don't know, just wondering aloud as it'd be nice to find out definate values for the line (with point highlighted as already is, circle around it). 
     
    Cheers!

      By: LiveGraph team - 2008-06-21 04:39
      * Axis labelling:  
       
      I have discussed the general problem with labelling the axes with the names of the data series in this post:  
      http://sourceforge.net/forum/message.php?msg_id=5045273  
      We plan the next release for the next 14 days. For that one, axes labelling will not be ready in time.  
      We will try to incorporate x-axis labelling into the release thereafter, but I cannot provide a date at this stage.  
      When I need axes labels for LiveGraph images, I add them using an image editor afterwards, but having done it myself I know how annoying and time-consuming this is.  
       
      * As for the highlighting issue you mentioned:  
      I am not sure I see what exactly you mean.  
      You are saying  
       
      > It appears you get the values of the cursor point -  
      > but why not the values of the underlying plot point?  
       
      What values do you mean?  
       
      > it'd be nice to find out definate values for the line  
       
      Do you mean that it would be nice to display the exact data coordinates of the currently highlighted point, or what was it you had in mind?  
      I think, it would be nice indeed. The problem is that if the plot is dense, several data points may be highlighted at the same time, so we would need to find an appropriate solution for displaying all their coordinates without loosing the conciseness of the view. We will think about how this could be done. Or was it something else you had in mind?  
       
      Cheers..

By: Nobody/Anonymous (nobody) - 2008-06-06 11:00
java.lang.ArrayIndexOutOfBoundsException: 0 
at org.LiveGraph.plot.Plotter.computeScreenData(Plotter.java) 
at org.LiveGraph.plot.Plotter.setScreenSize(Plotter.java) 
at org.LiveGraph.plot.GraphExporter.doExportGraph(GraphExporter.java 
 
the file containing the plotting data is fine... it's got 50 entries in (or however many i've made) 
 
app.setDisplayPlotWindow(true);  
app.initiateDataUpdate(); // So do an udpate first to ensure graph is final one. 
GraphExporter export = app.getGraphExporter(); //now start to export. 
export.doExportGraph(800, 600, "image/jpeg", new File(baseDir + "\\" + simName + "\\" + simName + ".jpeg")); // save 
 
It's within this portion that I am getting the exception being thrown.


    By: LiveGraph team - 2008-06-06 11:49
    Hi, 
    is there any chance you could paste the data file you are using into a post here? 
    This is to make sure we use the same data as you while debugging. If you can, please do make the file as short as possible (but please ensure that you are still getting the error with the short version). 
     
    Also, please let us know which version of LiveGraph you are using. 
    If you post these data quick, I'll make sure to approach this problem over the weekend. 
     
    Cheers..

    By: Nobody/Anonymous (nobody) - 2008-06-06 12:50
    Hi Greg, 
     
    Further update on the issue. 
     
    What I am doing is "Batch runs" - I'm carrying out simulations, and your application is plotting results for me. When carrying out simulations, I can make the simulation faster by not displaying the simulation itself... 
     
    Doing this means it runs faster, so that 1000 iterations (which means 1000 data logs) takes about 1 second or so. 
     
    Now I do make a call to update the file before trying to save it, however, adding a Thread.currentThreat().sleep(2000)  
    (putting it to sleep for 2 seconds) works fine before saving, the images are now saved. 
     
     
    Here's the data its reading, i've truncated - all entries are practically identical during these runs: 
    @Quick Graph 
    Actives,Inactives,Police,Prison Population 
    0,1120,64,0 
    743,368,64,9 
    738,363,64,19 
    739,363,64,18 
    742,364,64,14 
    742,364,64,14 
    745,364,64,11 
    746,364,64,10 
    747,364,64,9 
    748,364,64,8 
    750,364,64,6 
     
    And for the settings file: 
    <?xml version="1.0" encoding="UTF-8" standalone="no"?> 
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
    <properties> 
    <comment>LiveGraph version 1.1.4. DataFileSettings.</comment> 
    <entry key="DataFile"> C:\Users\Mike\Documents\Application\06-06-2008\Legitimacy_0.18/Legitimacy_0.18.dat </entry> 
    <entry key="ShowOnlyTailData">0</entry> 
    <entry key="UpdateFrequency">1000</entry> 
    <entry key="DoNotCacheData">0</entry> 
    </properties> 
     
    The thing was that all runs are near identical, sometimes this worked... sometimes it didn't. 
    I got further exception though: 
     
    java.lang.IndexOutOfBoundsException: Index: 374, Size: 354 
    at java.util.ArrayList.RangeCheck(ArrayList.java:547) 
    at java.util.ArrayList.get(ArrayList.java:322) 
    at org.LiveGraph.dataCache.DataCache.getDataSet(DataCache.java) 
    at org.LiveGraph.plot.Plotter.computeXCoordinates(Plotter.java) 
    at org.LiveGraph.plot.Plotter.computeScreenData(Plotter.java) 
    at org.LiveGraph.plot.Plotter.setScreenSize(Plotter.java) 
    at org.LiveGraph.plot.GraphExporter.doExportGraph(GraphExporter.java) 
     
     
    To replicate, just do a loop whereby you create the livegraph ap instance, write data to file for it to plot (it's supposed to plot in real time, so when the simulation is observable it may run for minutes per simulation instead of milli seconds), at the end, force a quick reload of graph and display to then save out. 
     
    It NEVER happens when the simulation takes time,it's only on the batch runnings which take literally... milli seconds to complete. It creates an LiveGraph ap instance, writes data to the file, updates the graph view just before trying to save, and then saves. 
     
    As I said, putting a pause in between updating the plot from the file, and then the save - eradicates these errors. 
     
    Hope that's helpful, will check back in a few hours to see if you need any more info. 
     


    By: Nobody/Anonymous (nobody) - 2008-06-06 12:51
    Urgh, version is 1.1.4 sorry, and it also happened with 1.1.2 (last stable release).

      By: LiveGraph team - 2008-06-06 14:31
      Hmm, sounds weird.. 
      Thanks for the detailed description though. 
      It's past midnight here, I will have a few beers now and investigate this on the weekend. 
      Check back on Monday or Tuesday, should hopefully be solved by then. 
       
      Cheers..

    By: LiveGraph team - 2008-06-16 08:16
    Hi, 
     
    I am sorry for the delay with the answer - so many things to do and so little time.. 
     
    I assume that your program looks like this: 
     
    [...] 
    LiveGraph lg = LiveGraph.application(); 
    lg.exec(new String[] {}); 
     
    DataFileSettings dfs = lg.getDataFileSettings(); 
    dfs.setDataFile("lgBugTest/bugtest.lgdat"); 
     
    lg.initiateDataUpdate(); 
    GraphExporter export = lg.getGraphExporter();  
    export.doExportGraph(800, 600, "image/jpeg", new File("lgBugTest/bugtext.jpeg")); 
     
    lg.disposeGUIAndExit(); 
    [...] 
     
    First of all, you do not need to call lg.initiateDataUpdate() - this is already forced by doing dfs.setDataFile("xxx"). Of course, if time passed after you set the file you can force another update. It does no harm anyway. 
     
    The problem at hand is that an update (initiated either through lg.initiateDataUpdate() or through dfs.setDataFile("xxx")) is non-blocking. In either case the actual work is done by org.LiveGraph.dataCache.UpdateInvoker.update(), which starts a new update-thread and returns immediately. If your main application thread is (randomly) preferred by the scheduler immediately thereafter, then the update from the file is not yet complete by the time you ask for the graph export. This is why making the current thread sleep helps. 
     
    To solve the problem properly, we will need to add a blocking update function - we will add this to the todo list. In the meantime we need to handle this case gracefully: 
     
    Edit org.LiveGraph.plot.Plotter.computeScreenData() 
     
    After 
     
    if (screenTooSmall()) 
    return; 
     
    add 
     
    if (null == screenDataBuffer) 
    return; 
     
    also, replace the line 
     
    for (int s = 0; s < seriesCount; s++) { 
     
    by 
     
    for (int s = 0; s < seriesCount && s < screenDataBuffer.length; s++) { 
     
    As a result of this the rendering will stop if no data is available and no exception will be thrown. 
    On the downside of this, you may get an empty export image if the exporter is invoked before the data was fully read. Until we have added a blocking update method, your sleep solution seems like a good workaround. The time you need to sleep depends on the size of your file, i.e. the time it takes to load it - play around with a few values. 
     
    I was also trying to replicate the second exception you mentioned, but so far - no luck. 
    Could you please provide a few hints on what code leads to this: 
    java.lang.IndexOutOfBoundsException: Index: 374, Size: 354  
    at java.util.ArrayList.RangeCheck(ArrayList.java:547)  
    at java.util.ArrayList.get(ArrayList.java:322)  
    at org.LiveGraph.dataCache.DataCache.getDataSet(DataCache.java)  
    at org.LiveGraph.plot.Plotter.computeXCoordinates(Plotter.java)  
    at org.LiveGraph.plot.Plotter.computeScreenData(Plotter.java)  
    at org.LiveGraph.plot.Plotter.setScreenSize(Plotter.java)  
    at org.LiveGraph.plot.GraphExporter.doExportGraph(GraphExporter.java)  
     
    Great thanks! 
     
    By the way, if you have a spare minute, and you'd like to be listed on http://www.live-graph.org/references.html, let us know about yourself and your work. 


By: Nobody/Anonymous (nobody) - 2008-06-11 20:14
When you integrate Live Graph into a Java application, is there any way to close Live Graph other than manually? Can I have a timer close it? Thanks


    By: Nobody/Anonymous (nobody) - 2008-06-11 20:35
    Nevermind, found it. Looked through and missed it.

    By: LiveGraph team - 2008-06-16 06:24
    For the benefit of everyone else - you are looking at 
    org.LiveGraph.LiveGraph.disposeGUIAndExit()

By: Nobody/Anonymous (nobody) - 2008-05-26 07:16
hi every one i need help in using LiveGraph  
i have my java application that have two variables 1)patient heartbeat and 2)time.I need to plot these to variables in real time. here is my code 
 
 
// derived from SUN's examples in the javax.comm package 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Enumeration; 
import java.util.TooManyListenersException; 
import java.lang.*; 
import oracle.jdbc.driver.*; 
import gnu.io.*; // for rxtxSerial library 
 
 
public class nulltest22 implements SerialPortEventListener { 
static CommPortIdentifier portId; 
static CommPortIdentifier saveportId; 
static Enumeration portList; 
InputStream inputStream; 
SerialPort serialPort; 
Thread readThread; 
static Connection con = null;  
static String messageString = "Hello, world!"; 
static OutputStream outputStream; 
static boolean outputBufferEmptyFlag = false; 
 
 
public static void main(String[] args)throws SQLException { 
boolean portFound = false; 
String defaultPort; 
 
// determine the name of the serial port on several operating systems 
String osname = System.getProperty("os.name","").toLowerCase(); 
if ( osname.startsWith("windows") ) { 
// windows 
defaultPort = "COM5"; 
}  
else { 
System.out.println("Sorry, your operating system is not supported"); 
return; 

 
if (args.length > 0) { 
defaultPort = args[0]; 
}  
 
System.out.println("Set default port to "+defaultPort); 
 
// parse ports and if the default port is found, initialized the reader 
try { 
portId = (CommPortIdentifier)CommPortIdentifier.getPortIdentifier(defaultPort); 
System.out.println("Found port: "+defaultPort);  
portFound = true; 
nulltest22 reader = new nulltest22();  

catch (Exception e) { 
System.out.println(e); 

 
if (!portFound)  

System.out.println("port " + defaultPort + " not found."); 
}  
 
// close the connection 
//con.close(); 
} //main end 
 
 
 
public nulltest22 () { 
 
 
try 

try 

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
Class.forName("oracle.jdbc.driver.OracleDriver"); 

catch (ClassNotFoundException s) 

System.out.println(s); 

 
 
con =DriverManager.getConnection("jdbc:oracle:thin:@toshiba:1521:ora","scott","tiger"); 
 

catch(SQLException s) 

System.out.println(s);  

 
 
// initalize serial port 
try { 
serialPort = (SerialPort) portId.open("SimpleReadApp", 2000); 
} catch (PortInUseException e) { 
System.out.println(e); 

 
try { 
inputStream = serialPort.getInputStream(); 
} catch (IOException e) { 
System.out.println(e);  

 
try { 
serialPort.addEventListener(this); 
} catch (TooManyListenersException e) { 
System.out.println(e); 

 
// activate the DATA_AVAILABLE notifier 
serialPort.notifyOnDataAvailable(true); 
 
try { 
// set port parameters 
serialPort.setSerialPortParams(19200, SerialPort.DATABITS_8,  
SerialPort.STOPBITS_1,  
SerialPort.PARITY_NONE); 
} catch (UnsupportedCommOperationException e) {} 
 
 
 
}//end constructor 
 
public void serialEvent(SerialPortEvent event) { 
 
switch (event.getEventType()) { 
case SerialPortEvent.BI: 
case SerialPortEvent.OE: 
case SerialPortEvent.FE: 
case SerialPortEvent.PE: 
case SerialPortEvent.CD: 
case SerialPortEvent.CTS: 
case SerialPortEvent.DSR: 
case SerialPortEvent.RI: 
case SerialPortEvent.OUTPUT_BUFFER_EMPTY: 
break; 
case SerialPortEvent.DATA_AVAILABLE: 
// we get here if data has been received 
byte[] readBuffer = new byte[400]; 
try { 
// read data 
while (inputStream.available() > 0) { 
int numBytes = inputStream.read(readBuffer); 
}  
// print data 
String result = new String(readBuffer); 
 
//check if the data is a patient ID 
int a = result.indexOf("77707373"); 
System.out.println("find wpss in index "+ a); 
if (a!=-1){ 
 
int location=a; 
 
char array[] = result.toCharArray(); 
 
 
//save the patient info in variales 
//ineed to drow this variable PD and TS 
String PID = new String (array,location+8,2); 
 
String TS = new String (array,location+10, 8); 
 
 
String sample = new String (array,location+18, 4); 
 
 
String HeartBeat = new String (array,location+22, 4); 
System.out.println("hb is/"+HeartBeat );  
 
 
 
 
try { 
//saving the data in the database table 
Statement st = con.createStatement(); 
String statment = "INSERT INTO heartbeat5 VALUES('" + PID+ "' , '" + TS + "' , '" + sample + "', ' " + HeartBeat + "') "; 
System.out.println(statment); 
int val= st.executeUpdate(statment); 
 
} catch (SQLException ex){ } 
} catch (IOException e) {} 

break; 
}  
}  

 
to drow PID and TS in the code 
how can i make that with Live Graph 
help me please 
 
Eman


    By: Nobody/Anonymous (nobody) - 2008-05-26 07:18
    hi every one i need help in using LiveGraph  
    i have my java application that have two variables 1)patient heartbeat and 2)time.I need to plot these to variables in real time. here is my code 
     
     
    // derived from SUN's examples in the javax.comm package 
    import java.io.IOException; 
    import java.io.InputStream; 
    import java.io.OutputStream; 
    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.SQLException; 
    import java.sql.Statement; 
    import java.util.Enumeration; 
    import java.util.TooManyListenersException; 
    import java.lang.*; 
    import oracle.jdbc.driver.*; 
    import gnu.io.*; // for rxtxSerial library 
     
     
    public class nulltest22 implements SerialPortEventListener { 
    static CommPortIdentifier portId; 
    static CommPortIdentifier saveportId; 
    static Enumeration portList; 
    InputStream inputStream; 
    SerialPort serialPort; 
    Thread readThread; 
    static Connection con = null;  
    static String messageString = "Hello, world!"; 
    static OutputStream outputStream; 
    static boolean outputBufferEmptyFlag = false; 
     
     
    public static void main(String[] args)throws SQLException { 
    boolean portFound = false; 
    String defaultPort; 
     
    // determine the name of the serial port on several operating systems 
    String osname = System.getProperty("os.name","").toLowerCase(); 
    if ( osname.startsWith("windows") ) { 
    // windows 
    defaultPort = "COM5"; 
    }  
    else { 
    System.out.println("Sorry, your operating system is not supported"); 
    return; 

     
    if (args.length > 0) { 
    defaultPort = args[0]; 
    }  
     
    System.out.println("Set default port to "+defaultPort); 
     
    // parse ports and if the default port is found, initialized the reader 
    try { 
    portId = (CommPortIdentifier)CommPortIdentifier.getPortIdentifier(defaultPort); 
    System.out.println("Found port: "+defaultPort);  
    portFound = true; 
    nulltest22 reader = new nulltest22();  

    catch (Exception e) { 
    System.out.println(e); 

     
    if (!portFound)  

    System.out.println("port " + defaultPort + " not found."); 
    }  
     
    // close the connection 
    //con.close(); 
    } //main end 
     
     
     
    public nulltest22 () { 
     
     
    try 

    try 

    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 

    catch (ClassNotFoundException s) 

    System.out.println(s); 

     
     
    con =DriverManager.getConnection("jdbc:oracle:thin:@toshiba:1521:ora","scott","tiger"); 
     

    catch(SQLException s) 

    System.out.println(s);  

     
     
    // initalize serial port 
    try { 
    serialPort = (SerialPort) portId.open("SimpleReadApp", 2000); 
    } catch (PortInUseException e) { 
    System.out.println(e); 

     
    try { 
    inputStream = serialPort.getInputStream(); 
    } catch (IOException e) { 
    System.out.println(e);  

     
    try { 
    serialPort.addEventListener(this); 
    } catch (TooManyListenersException e) { 
    System.out.println(e); 

     
    // activate the DATA_AVAILABLE notifier 
    serialPort.notifyOnDataAvailable(true); 
     
    try { 
    // set port parameters 
    serialPort.setSerialPortParams(19200, SerialPort.DATABITS_8,  
    SerialPort.STOPBITS_1,  
    SerialPort.PARITY_NONE); 
    } catch (UnsupportedCommOperationException e) {} 
     
     
     
    }//end constructor 
     
    public void serialEvent(SerialPortEvent event) { 
     
    switch (event.getEventType()) { 
    case SerialPortEvent.BI: 
    case SerialPortEvent.OE: 
    case SerialPortEvent.FE: 
    case SerialPortEvent.PE: 
    case SerialPortEvent.CD: 
    case SerialPortEvent.CTS: 
    case SerialPortEvent.DSR: 
    case SerialPortEvent.RI: 
    case SerialPortEvent.OUTPUT_BUFFER_EMPTY: 
    break; 
    case SerialPortEvent.DATA_AVAILABLE: 
    // we get here if data has been received 
    byte[] readBuffer = new byte[400]; 
    try { 
    // read data 
    while (inputStream.available() > 0) { 
    int numBytes = inputStream.read(readBuffer); 
    }  
    // print data 
    String result = new String(readBuffer); 
     
    //check if the data is a patient ID 
    int a = result.indexOf("77707373"); 
    System.out.println("find wpss in index "+ a); 
    if (a!=-1){ 
     
    int location=a; 
     
    char array[] = result.toCharArray(); 
     
     
    //save the patient info in variales 
    //ineed to drow this variable PD and TS 
    String PID = new String (array,location+8,2); 
     
    String TS = new String (array,location+10, 8); 
     
     
    String sample = new String (array,location+18, 4); 
     
     
    String HeartBeat = new String (array,location+22, 4); 
    System.out.println("hb is/"+HeartBeat );  
     
     
     
     
    try { 
    //saving the data in the database table 
    Statement st = con.createStatement(); 
    String statment = "INSERT INTO heartbeat5 VALUES('" + PID+ "' , '" + TS + "' , '" + sample + "', ' " + HeartBeat + "') "; 
    System.out.println(statment); 
    int val= st.executeUpdate(statment); 
     
    } catch (SQLException ex){ } 
    } catch (IOException e) {} 

    break; 
    }  
    }  

     
    to drow PID and TS in the code 
    how can i make that with Live Graph 
    help me please 
     
    Eman

    By: LiveGraph team - 2008-05-31 08:22
    Hi there,  
     
    please excuse the delayed answer, but it has to do with the quality of your post.  
    You are providing all of your code here and expect us to read it and to figure out what it does instead of explaining it and/or providing only the relevant sections. We are all working hard and there was no time for it earlier.  
     
    I will try to reply to your question as good as I can:  
    First: READ THE MANUAL!!!!  
    An example is at: http://www.live-graph.org/ref/usingLiveGraph.html#example  
    More info is on that same page.  
     
    Now, what you need to do in your case is:  
     
    1) Create a DataStreamWriter and add your data series to it:  
     
    A class variable:  
    [...]  
    private DataStreamWriter lgOut = null;  
    [...]  
     
    In the constructor:  
    [...]  
    this.lgOut = DataStreamWriterFactory.createDataWriter("YourDir", "YourFile", "dat");  
    lgOut.addDataSeries("Time");  
    lgOut.addDataSeries("Heart Beat");  
    [...]  
     
    2) Create a finaliser to close the DataStreamWriter at the and or your application. Add a method:  
     
    [...]  
    @Override public void finalize() {  
    if (null != lgOut) {  
    lgOut.close();  
    lgOut = null;  
    }  
    }  
    [...]  
     
    3) In your event handler, write the data to the stream:  
     
    public void serialEvent(SerialPortEvent event) {  
    [...]  
    lgOut.setDataValue("Time", TS);  
    lgOut.setDataValue("Heart Beat", HeartBeat);  
    lgOut.writeDataSet();  
    [...]  
    }  
     
    Note that before writing the data to the stream you must make sure that it is in a format the LiveGraph can parse.  
    LiveGraph can parse any numerical values (integers and floating point), but no date formats.  
    For timestamps, convert them to seconds or milliseconds and write to stream.  
    You can then set the LiveGraph application to display them as time stamps.  
     
    If you have any more SPECIFIC questions, please post them and we will happily answer.  
    But please make sure that you try for yourself first.  
     
    Check these pages:  
    http://www.live-graph.org/ref/usingLiveGraph.html  
    http://www.live-graph.org/javadoc/WriterAPI/  
    http://www.live-graph.org/  
     
    Cheers!

By: Nobody/Anonymous (nobody) - 2007-08-08 08:09
Dear LiveGraph team, 
 
I have been playing with your LiveGraph software. It seems to be very 
useful for my research. I am currently thinking of building a real time 
expression simulator for the evolution gene regulatory network (GRN). I 
had already got a model for GRN evolution, and had some preliminary result 
on how evolutionary processes can shape the complex structure of GRN 
(submitted to ICSB 07). These are all about effects on network structures, 
and I am interested in extending it to study the effect on the dynamical 
properties of the network. I want to know how evolution actually affects 
the expression of genes...which can perhaps explain the emergence of 
network robustness. That's why I want to build a real time simulator for 
GRN. Your LiveGraph tools just fall into place nicely. OK...some questions 
about LiveGraph: 
 
1) Can LiveGraph adds or deletes a time series in real time? This 
corresponds to the insertion or removal of genes in a GRN. 
2) Am I able to take part of your code for my simulator such that I don't 
always have to pipe data indirectly through a log file? Is this 
recommended? 
3) Is it possible to take just the plotter window and integrate it in my 
program? 
 
I guess question (1) is most important as I do expect to add/remove genes 
fairly regularly, so the plotter need to respond quickly to any change in 
number of time-series. (2) and (3) are more about whether taking part of 
your program is appropriate. 
 
This project is most likely going to become a project for a Master by 
coursework student. 
 
Joshua


By: LiveGraph team - 2007-08-16 03:49
While LiveGraph is designed for Java 1.6, it should run under Java 1.5 with the exception of some features. 
It has been recently reported that LiveGraph 1.12 does not start with Java 1.5 properly. 
We have investigated the request and can confirm the problem. A fix will be released as soon as possible. 
In the meantime, following solutions are possible: 
 
Java 1.6 is available for most OS. The only exception we know of is Mac OS. If Java 1.6 is available for your OS, we recommend you upgrade to the newest Java version in order to run LiveGraph. 
 
If you are using Mac OS or if you cannot upgrade to the latest Java version for any other reason, you can download the source code for both, LiveGraph 1.12 and the SoftNet-Consult Java Utility Library 1.0 (http://java-tools.sourceforge.net/) and compile them against Java 1.5. This should work without any problems. 
 
We plan to continue supporting Java 1.5 as long as Java 1.6 is not available for all mainstream OS. A fix for this problem will be released as soon as possible. Watch this space! 
 
The LiveGraphers))


By: Nobody/Anonymous (nobody) - 2007-08-08 06:16
Hi Gregory,  
 
Live Graph is Great! Thank you very much!  
One tiny question I met is when I create the data file using  
 
DataStreamWriterFactory.createDataWriter ("C:\\TutorialDir", "TutorialData", "dat") ;  
 
It creates a file like c:\TutorialDir\TutorialData.07.03.13-19.09.21.dat as you said.  
But, when I try to create and set values in Data File Settings file, how can I get the data file name I just created?  
 
I have browsed the functions in DataStreamWriter and I can not find any clue.  
Can u give me some info?  
 
Thanks :)


    By: LiveGraph team - 2007-08-08 06:39
    Hi there. 
     
    You are right, it is not possible to get the file name from org.LiveGraph.dataFile.write.DataStreamWriter. The reason for this is that the DataStreamWriter writes to an output stream. It may or may not be a file output stream. The idea behind this is to allow writing a program that sends data to LiveGraph without using the hard drive (which may be undesirable if you do not need your data at a later time, or if you want to avoid slow HD accesses). The trick is to use the pipe DataStreamWriter -> PipedOutputStream -> PipedInputStream -> DataStreamReader. As the DataStreamWriter does not know what kind of stream it uses, it cannot give you the file name. 
     
    The class org.LiveGraph.dataFile.write.DataStreamWriterFactory is a convenience class that takes information like the name of a directory, file extension etc., finds a unique file name, creates a FileOutputStream on that file and initialises a new DataStreamWriter on the stream it just created. If you need to know the file name you can avoid using DataStreamWriterFactory and create the output stream yourself. You will than know the file name. For a detailed example, please have a look at the source code of DataStreamWriterFactory. In short, you can do the following: 
     
     
    import org.LiveGraph.dataFile.write.*; 
    import import java.io.*; 
     
    DataStreamWriter createMyDataStreamWriter (String dataFileDir, String dataFileName, String dataFileExt) { 
    File file = DataStreamWriterFactory.getUniqueDataFile(dataFileDir, dataFileName, dataFileExt); 
    // "file" is the file you want; you can use file.getAbsolutePath() or file.getName() to get the file name 
    try { 
    FileOutputStream outs = new FileOutputStream(file); 
    DataStreamWriter writer = new DataStreamWriter(outs); 
    return writer; 
    } catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    // Process the error... 


     
    I hope this helps. 
     
    Cheers! 


    By: LiveGraph team - 2008-05-25 05:08
    Note that this interface has changed as of version 1.13. 
    See: 
    - http://www.live-graph.org/javadoc/complete/index.html 
    - http://java-tools.sourceforge.net/javadoc/com/softnetConsult/utils/files/FileTools.html

By: LiveGraph team - 2007-07-09 07:17
We have discovered a bug that appears on systems using certain locales. The affected systems are using locales that use other characters than "." as a decimal separator (e.g. German and French use ","). 
 
The error concerns the grid size settings and can lead to exceptions and incorrect program behaviour in some cases. The bug will be fixed in the next release. In the meantime we recommend to switch the grid off if the error occurs on your system.


By: Nobody/Anonymous (nobody) - 2007-05-15 03:37
I can not find information about speed of LiveGraph's performance - about 'samples per second'.  
Why so modest?  
It is very interesting to have table of performance for different CPUs, its amount and for different types of video cards.  
Visit: http COLON DOUBLE-SLASH www DOT oscilloscope-lib DOT com 
At least there is written: over a million quantization steps of signal per second on the Pentium III machine.  
 
Thanks. Michael


    By: LiveGraph team - 2007-05-15 03:51
    Hi there, 
     
    This post is a disclaimer. The actual reply to the post is in the next message. 
     
    The administrator of the LiveGraph project page as SourceForge has changed the post with the title "LiveGraph speed of performance" as follows: 
     
    The link URL was removed and replaced by a textual description of the link that can be used by a human person interested in the link, but cannot be interpreted by search engines. 
     
    REASON: 
     
    The post criticises our software for not including functions that are not objective of our software. If someone formulates this type of comment as a feature request, we will welcome it and try to add the feature. However, the post was formulated as subjective criticism and included a link to a an alternative product. We consider this as link farming. However, we welcome any comments on our software, positive and negative. Therefore we believe that it is most appropriate to keep the comment, but to remove the automatic link. Users interested in the alternative software described in the post may still follow the link by replacing the capital letters by the appropriate characters. 
     
    If the developers of the alternative software are interested to exchange links from each-other's websites, we will happily do that. The respective descriptions, however, should be objective.

    By: LiveGraph team - 2007-05-15 04:15
    Ok, now I'd like to reply to the post in a constructive manner :)) 
     
    Please correct me if I am mistaken, but as far as I understand the description at the website of the Oscilloscope Library, its primary purpose is to be used for linking to real-time controlling programs. In addition it can import data series files in text format. As a real-time controller component the Oscilloscope Library must allow for update frequency of several Hertz. 
     
    On contrary, the primary purpose of LiveGraph is linking to scientific simulations. Such simulations are usually very complex; they rarely produce meaningful data in intervals less than a second. The currently "fastest" setting of 1 update per second is simply an arbitrary limit set in the user interface. If our user community requests a lower limit, we can easily change it to 10, 50 or 100 Hz without significantly increasing the processor load (note that update-frequency of about 50 Hz and more will not be noticeable to the human eye anyway, cinema movies, for instance, run at only 24 frames per second). 
     
    Because LiveGraph is meant for data visualisation of scientific simulations, its primary objective are not frequent updates, but efficient and easy handling of large data quantities. I participated in working on simulations which produced over 1500 data series. That is why an important part of LiveGraph is a GUI that allows to select which data series should be displayed and to project these data series onto various scales by simple point-and-clicking. As of version 1.03 this interface has been extended. 
     
    In summary, I think that the Oscilloscope Library and LiveGraph are similar, but they concentrate on different areas. I think we should co-operate. My colleagues and I would welcome any type of collaboration. Please get in touch!)) 
     
     


    By: LiveGraph team - 2008-05-25 03:30
    Note that as of version 1.14, LiveGraph supports updates with up to 100 Hz frequency. 
    See http://www.live-graph.org/download.html 
    and http://www.live-graph.org/changeLog.html

By: Nobody/Anonymous (nobody) - 2008-04-15 01:52
I seem to be having trouble accessing http://www.live-graph.org/ 
 
Is the site having issues or has the LiveGraph project been suspended?


    By: LiveGraph team - 2008-04-16 09:09
    Thanks for pointing this out! 
    This was due to a technical problem with the website server and we had not noticed it. 
    Should be fixed now.

By: Nobody/Anonymous (nobody) - 2008-04-15 03:58
I found XAxisSeriesIndex in the Graph Settings file, but it does not seem to do anything. It seems like it is there to default which data series becomes the x-axis when XAxisType is set to XAxisDataValSimple. But this always defaults back to 0 if you open the program again. 
 
Is this a bug or am I using it wrong?


    By: LiveGraph team - 2008-04-16 09:08
    This seems to be a bug, you are right. 
    If, after the application is completely loaded, the settings are re-loaded, then it works. 
    Maybe this is because at the time when the settings from the last time are loaded, the data file is not yet loaded and there is no series 1 etc. Anyway, this must be fixed. 
    We had a few weeks work done on LiveGraph recently, but now we are stuck for time again :((

By: Nobody/Anonymous (nobody) - 2008-03-27 17:48
For example, I'd like to graph column3 x column8 x 5. Any way to do that?


By: Nobody/Anonymous (nobody) - 2008-03-20 19:11
Is there a way to continuously view the last 5 seconds of data? This is what my data set looks like: 
 
Seconds Value#1 Value#2 
64.991226 0.000083 0.089193 
64.991425 0.002095 0.081348 
64.991623 0.000727 0.083883 
 
IOW, I'd like to be able to change my sampling resolution, and always see the last 5 seconds worth of data (if I measure samples at 1 per second or 1000 per second).


    By: Nobody/Anonymous (nobody) - 2008-03-21 18:18
    So far, what I've found as a temporary solution is to tell my measurement software to output 100 samples per second, which will result in 5 seconds of history. However, it'd be nice if I could get more resolution than 500, since I can grow the graph window quite a ways horizontally (much greater than 500 pixels).

By: Nobody/Anonymous (nobody) - 2008-03-07 20:25
In a rare twist of events, I have LiveGraph running fine on Windows, but failing on AIX. (AIX 5.3, Java5-64). The error is: 
 
java -jar LiveGraph.1.1.Application.bin.jar 
The java class could not be loaded. java.lang.UnsupportedClassVersionError: (org/LiveGraph/LiveGraph) bad major version at offset=6 
 
Java reports its version as 1.5.0. Any suggestions? 



    By: LiveGraph team - 2008-03-12 07:20
    Hi there,  
     
    year, it's a tricky one, it took a while to figure it out - sorry for the delay. 
    LiveGraph is specified to run with Java 1.5 or later, although 1.6 is preferred. 
    A warning message is issued if you use Java 1.5 and a few minor GUI functions that use 1.6-features are not enabled (e.g. data series highlighting). 
     
    For some reason none of us here understands, the 1.1, 1.11 and 1.12 releases seem to be compiled for Java 1.6 only, which leads to your error message. We used to have a colleague working on a Mac, who pointed out mistakes like this immediately (Java 1.6 is not available on a Mac, or it was not at the time), but he has left a while ago. 
     
    We have released a new version LiveGraph 1.1.2.1, which is a copy of version 1.1.2 compiled for Java 1.5. You can download it from the website (http://www.live-graph.org/download.html). Using this version you should get the expected warning about using Java 1.5. Ignore it and proceed - there should be no further problem. Please get back to us if something goes wrong. 
     
    Hopefully this helps))

By: LiveGraph team - 2007-08-09 13:30
This is in response to the post "Using LiveGraph for my research".  
(See: http://sourceforge.net/forum/forum.php?thread_id=1795084&forum_id=673036)  
 
Q: Is it possible to integrate only the plotter window into a Java program?  
 
This depends on whether you want to: 
- integrate the plotter window as a separate window in your application; 
- integrate the plotter canvas pane directly into a window of you application which also contains other elements. 
 
The answer to the first option is - easy! 
From within your Java application you can start LiveGraph using something similar to: 
LiveGraph.application().exec(""); 
 
After this, you can obtain the application object: 
LiveGraph lg = LiveGraph.application(); 
 
Look now at the JavaDoc for the class org.LiveGraph.LiveGraph. This class provides public methods for hiding and displaying the GUI windows and to directly access the settings objects. You can use the settings to configure your display and the window control methods to show only the windows you want. 
 
The second case - embedding the plotter pane directly into your own windows is harder. LiveGraph was not specifically designed with this goal in mind. However, the source code is well structured and commented in great detail. You can familiarise yourself with the code and use it to embed the plotter into your GUI. 
 
Hope, this helps!) 



    By: Nobody/Anonymous (nobody) - 2008-02-29 01:22
    Is it possible to do the first option through languages other than Java?

    By: LiveGraph team - 2008-02-29 09:26
    You can start LiveGraph from a non-Java application making it look like it is part of your own system. You can also preconfigure how LiveGraph will look like when opened and what file will be read through the settings files. However, once opened you will not be able to control LiveGraph from your non-Java application because it will run as a separate OS process. You can find an overview of how to do these things at: 
    http://www.live-graph.org/ref/usingLiveGraph.html

    By: Nobody/Anonymous (nobody) - 2008-03-01 21:48
    Thanks for the quick response. 
     
    Actually, I was wondering more specifically, if it is possible to have LiveGraph open only the plot window, when it is integrated into a non-Java application. When I hide any of the settings windows, they reappear next time I open the program. It looks like there are Java commands to configure this, but is it possible through a non-Java application?

    By: LiveGraph team - 2008-03-03 06:42
    You are right - there is an interface to control this sort of thing in Java, but it is currently not possible to control the GUI layout through the parameter files (and therefore from non-Java applications). In future we plan to have LiveGraph save the last GUI layout on exit and reload it during the next start and you could use the corresponding files to achieve what you want, but at the moment it is unfortunately not possible. 
     
    .))

By: Nobody/Anonymous (nobody) - 2008-02-18 01:33
Hello Developers, 
1. What is the maximum number of channels that LiveGraph can handle? I need to have perhaps 100 signals in my CSV file, but with only 10 or so being displayed at any one time.  
Q: Is this feasible? 
 
2. As other posters have noted, a faster time-base speed would be very helpful. I need to have the speed at something in the 20 - 100 Hz range. I can live with 20 Hz screen updates, if each update could consume 2 to 10 new records from the CSV file.  
Q: Might this rate be available in the hopefully fore-coming (maybe March 2008) update? 
 
3. Again as noted by others: It would be really helpful if one "channel" could be the time of a sample point. This is particularly important in my application as samples are not always uniformly spaced in time. The ideal time format would be absolute date and time, to a 10 msec resolution. 
Q: Any possibility of this in the next release? 
 
4. It would be helpful to momentarily "freeze" the view and scroll it forward and backward. Then subsequently resume displaying data from the input file from either the point where the freeze occured, or first jumping to the current end of file and then displaying. 
 
Thank You, 
Dave 



    By: LiveGraph team - 2008-02-18 13:37
    Hi Dave, 
     
    Q1: Right now I am working on a simulation that produces about 3000 data series (if that is what you mean by channels). It is a large-scale biological simulation that incorporates a large number of ecological niches. At each time-step ca. 50 global attributes are produced, plus ca. 15 attributes for each niche. There are over 200 niches. The whole idea of creating LiveGraph originated because we have to deal with this kind of data on regular basis. 
     
    Q2: Yes, whether we make it in March or a few weeks later - this feature goes into the next release. 
     
    Q3: Yes, a time data series will be included, but we are still sorting out a format. We tend towards expecting a number in the datafile that will be set to be interpreted as time-stamp in the series settings. 
     
    Q4: Freezing is not planned for the moment, but you will achieve the same effect if you move the slider that sets the update interval into the "only manual update" position and then move it back as required. 
     
    Cheers!))

By: Nobody/Anonymous (nobody) - 2008-02-05 23:33
The screen shots on the main website show graph's without the x's at the plotted points, but I can't seen to find how to turn this off in my own graphs. Any help? =)


    By: LiveGraph team - 2008-02-08 07:19
    Hi there, 
     
    not sure what you mean, but I'll assume that you mean the small stars marking each data point on each of the data lines. The way they are displayed is as follows: 
     
    If your current view has just a few data points per line, the stars are displayed in order to make it easier to see where the data points are. If your current view has a lot data points then the stars would overlap and be therefore counter-productive. This is automatically detected and the stars are automatically switched off once they move too close together. 
     
    As you keep displaying more and more data points at a time, you can "prolong" the "live" of the stars by making your plot window wider. Similarly, if you make the plot window narrower, the stars will disappear sooner. There is no manual control for the stars as we feel that the current behaviour is optimal for the majority of cases and one of the major objectives of LiveGraph is to have a concise GUI. 
     
    I hope this helps, 
     
    Cheers))

By: Nobody/Anonymous (nobody) - 2008-01-29 04:16
Fantastic work so far. The program looks perfect for integeration into my project. However I need the ability to plot agains date/time as noted by another user. I noticed there has not been any activity lately, and was wondering if this project is still alive, or should I quit holding my breath and move onto something else. 
 
Thanks, 
 
GB 
 
 
 



    By: LiveGraph team - 2008-01-29 10:03
    Hi there, 
    thank you for the compliments. 
     
    Yes, LiveGraph is alive and we are doing work on it. 
    The LiveGraph team is basically a subset of a research group in evolutionary and complex systems at Monash University. As we have no specific funding for LiveGraph we have to work on it in our spare time. Unfortunately, repeated deadlines for conference publications and other things continue keeping us busy. At the moment (as of end of Jan'08) we have a number of deadlines in early March. If all goes well, we will have some air to bring out a new release in March. 
     
    The LiveGraphs))

By: Nobody/Anonymous (nobody) - 2007-12-17 13:27
Hello, 
 
Thanks for providing the program, we are using it for atmospheric research. Ussing the code I came up with a few questions: 
1)I am trying to set the values of the x axis from my own code, I have tried gs.getXAxisSeriesIndex() and gst.setXAxisSeriesIndex(0)(0 is the column index of the Data file) and saving the files, but it is not working, when I start the program is still taking the x data from "Use Dataset Number". Could you please let me know how to set this up.  
2)I was wondering if it is possible to the set up, from a my code, the location of the GUI windows. So when I initialize the program it fits other GUI information which I have. 
 
Thanks for the help and the program, 
 
Cheers! 
 
Li 



    By: LiveGraph team - 2007-12-18 05:23
    Hi there, 
     
    we are currently all on holidays and will reply to your email between XMas and NY. 
     
    So long!))

By: Nobody/Anonymous (nobody) - 2007-10-30 13:52
Hello guys. I hope someone will be able to help me sort this out. 
 
I have opened a CSV file and it all seemed ok; the series were all present, but no graph was visible. I've tried with several CSV files and I got he same result. 
Do you have any idea what could be wrong? :"> 
 
Thanks in advance


By: Nobody/Anonymous (nobody) - 2007-09-13 18:03
First of all, a note of thanks for a software package that's simple, well-designed, and fulfils its design purpose splendidly. 
However, there are two things that would be really nice, although I should disclaim them by saying that while I know the design purpose of LiveGraph is for graphing simulation results, I'm actually using it to monitor an experiment. 
 
For reference, I'm using LiveGraph 1.1.2. 
 
The first (and apologies if this has already been posted) would be a change of the minimum update frequency to say 10 or 20 Hz. 
The second is either a feature request or a bug report, depending on the intended functionality of the 'Show tail data' option - I'm essentially hoping for a 'scrolling window': for the last N data points (where N could be configurable, but not necessarily so) to be displayed in the plot window. Although this is (as far as I understand) the listed behaviour of 'Show tail data', it seems to, in reality, simply rezero its X-axis periodically, not necessarily in keeping with updates to the data stream. The end result is that the graph will 'horizontally compress' itself for a while, then the X-minimum will move, and it begins again. 
 
Feature request notwithstanding, this really is one heck of a find - the authors really deserve all the praise they receive!


    By: LiveGraph team - 2007-10-03 06:11
    Thanks, we will change the minimum update frequency with the next release. 
    We will also check the 'Show tail data' problem. If you could provide a more detailed setup/behaviour report, we could target the search better. Hopefully the problem will be resolved soon, preparations for a new release are under way!)) 
     
    Cheers, 
     
    the LiveGraph-s !

By: Nobody/Anonymous (nobody) - 2007-09-08 11:51
Dear developers, 
 
I'm doing finite element software development and often have the need to monitor convergence of the iteration. I found your software a couple of days ago and it just about fills my needs for the monitoring. However, there are some minor issues that would make it even better. 
 
Monitoring convergence it would be useful if in the 'Data series setting' window there would be a logarihtmic (base 10) 'transformation'. Typically convergence start from ~1 and goes to 10e-6 or even less. In linear scale you don't really see the difference below 10e-2. Also having the x-scale labels be rather integers than real numbers would be nice. With these minor modifications your software would become very useful for the CAE/CFD communities. 
 
Keep up the good work! 
 
Best regards, 
Peter 



    By: LiveGraph team - 2007-09-12 08:33
    Hi Peter, 
     
    A log-scale transformation is clearly a missing feature. In fact, work is already under way to include this into the next release. We will use the "scale factor" column of the data series settings to set the base of the log. 
     
    However, using integers rather than reals for x-axis labels is not currently planned. The positions of the ticks along the axes are automatically calculated in order to evenly space the ticks along the axes, the labels are created accordingly. We will consider this request for the future. 
     
    Hope, this helps!

    By: Nobody/Anonymous (nobody) - 2007-09-13 11:14
    Hi Greg, 
     
    This will certainly help! The log-scale is almost a must while the integer scale axis is just a esthetic feature. 
     
    Br, Peter

By: plantas (betellen) - 2007-09-04 11:11
Dear Developers 
 
I came accross the LiveGraph tool when I was looking for a 
tool that can plot multi-column csv files in a convenient 
way. Meaning that it should be easy to add/remove rows to be 
plotted. 
I think your tool is realy great but it would be even 
greater, if you could add the following features: 
 
-Box-Zoom (draw rectangle into the plot window) 
-Scroll function (click into the plot and move left/right on 
the timeline using the mouse). 
-"Column Sets": Allow to create Groups of arbitrary columns. 
Allow to select the group to be plotted. 
I already "hacked" a zoom function. It works but is not yet 
integrated into the GUI. The GUI would have to be extended 
with at least two buttons (zoom/scroll)? 
 
If you don't have time to do it or if you don't need these 
features, we could add them ourself (maybe until the end of 
November). 
Best regards, 
 
plantas


    By: LiveGraph team - 2007-09-12 05:18
    Hi there, 
     
    the features you mention would certainly be useful: 
     
    * Box-Zoom: such function would essentially present a more convenient interface for selecting the viewport. Currently, zoom can be achieved using the viewport settings in the graph settings window. It certainly would be more convenient if the viewport could also be selected by drawing a box in the plot window. We are planning to add this function. However, we plan only one more release before the end of 2007. We will try to include a box-zoom in that release, but at this stage we are not certain whether the time will permit that. In the worst case, this function will be added at a latter stage. 
     
    * Scroll function using the mouse: This is also something that would add a lot of convenience, but can be achieved using the viewport settings at present. We plan to add this together with the box-zoom function. 
     
    * Column sets: This is a really good idea. A similar functionality can be achieved by using the data series settings (click ">>" to see advanced switches), however, the ability to create arbitrary column sets would add a powerful functionality. We will discuss adding this functionality at the next meeting of the developer team. 
     
    Many thanks for your suggestions! 
     
    The LiveGraph team.

By: LiveGraph team - 2007-08-09 13:15
This is in response to the post "Using LiveGraph for my research".  
(See: http://sourceforge.net/forum/forum.php?thread_id=1795084&forum_id=673036)  
 
Q: Is it possible to pipe data from a Java application directly to LiveGraph without the detour via the hard disk? 
Is this recommended?  
 
LiveGraph was designed with this possibility is mind, but it is good that you raise this question, because we noticed that the required methods are not exposed in the public interface. This will be fixed in the next release, in the mean time this will require some programming: 
 
The general idea is to use the pipe DataStreamWriter -> PipedOutputStream -> PipedInputStream -> DataStreamReader. Unfortunately, the only public interface for setting the input stream at the moment is the DataFileSettings object of the application, and that can only take a file name. If you look at the UpdateInvoker class you can see how the event of changing the data file name is handled. You can modify the source code in order to allow setting the input to any stream. 
 
A general comment on this issue is that particularly in scientific simulations, data is later needed for analysis. LiveGraph is designed for monitoring the application in real-time and for initial exploratory data analysis after the simulation. There are other tools that specialise in a more rigorous data analysis. In the majority of cases it can be recommended to keep all data for later analysis or just for simply looking at it again. The question, whether piping data through the memory, rather that the hard disk, and loosing it afterwards is a good idea should be considered with caution. 
 
Best wishes!


By: LiveGraph team - 2007-08-09 12:49
This is in response to the post "Using LiveGraph for my research". 
(See: http://sourceforge.net/forum/forum.php?thread_id=1795084&forum_id=673036) 
 
Q: Can LiveGraph add or deletes a time series in real time? 
 
In your question you do not specify whether you refer to the LiveGraph Plotter Application or to the LiveGraph Data Writer API which manages the log file. 
 
The LiveGraph plotter application does not add, delete or manage data in any way. It plots the data on the screen. If a data series is present in the data file, it can be displayed or hidden by a single mouse click (see data series settings window). However, hiding a data series merely removes the corresponding plot from the screen, the data is not affected. Similarly, you can only display what is in the data file. 
 
The LiveGraph Data Writer API for Java can be used by your application to stream your data into a file without worrying about how it works. Currently, the API is stream based. This means that you have to specify the number of data series and a heading for each series at the beginning. Once the first data set has been written, no new series can be added, as the series information is already sent "down the stream". 
If you do not have all your series headings available at the start, but you know their maximum number, you can generate "place-holder" data series. At each time step of your simulation, you only specify the values for those data series, that are active at the given time. The values for other series will be specified as empty in the file. The LiveGraph plotter can handle that and "skip" points while plotting. 
We are considering extending the LiveGraph Data Writer API in future to allow real adding and removing of data series for situations, in which the maximum number of series is not known at the beginning of the simulation. The problem with this is that LiveGraph normally only reads the new information in a data file at each update. Rewriting the complete data file to add or remove a data series will confuse LiveGraph's caching strategy. Therefore, that feature will only be possible in the "do not cache"-mode (see data file settings window). In addition, the operations for adding and removing data series will require recreating the entire data file by your application, which is a slow process as the file may be very big. While this feature is not yet available in the API, you can create the data files yourself, if you need this function urgently. 
 
I hope this helps. 
 
Cheers!


By: Nobody/Anonymous (nobody) - 2007-03-16 04:31
Hi, 
 
I am using MacOS 10.4.8. 
The text fields for the viewport settings in the graph settings window are to narrow to see their content. 
I can just about click the cursor into the fields, so I can type and everything seems to work, but the text fields are not wide enough to see even a single digit inside.


    By: LiveGraph team - 2007-03-16 04:36
    Hi there, 
     
    thanks for making us aware of that! We actually did not have a chance to test under MaxOS X, so we were not aware of the problem. We will fix this in the next release. In the meantime I recommend the following work-around: 
     
    - Click the cursor into the field. 
    - Select the entire field content by pressing MacButton-A. 
    - Type the value you want "blindly". 
    - Click on a different element in the window in order to move the cursor out of the field which applies the change to the graph. 
     
    This should work for the moment. 
     
    Cheers..

    By: LiveGraph team - 2007-05-28 06:25
    This issue has been resolved in the major release version 1.10.

By: Nobody/Anonymous (nobody) - 2007-04-24 09:39
Hi there. 
 
When the name of a data series is very long, it makes the width of the drop-down box "Series" in "Graph settings" > "X axis" very large too. Because of this it is sometimes not possible to properly see the "Value" field next to the drop-down box. 
 
Cheers!