An embodiment of the present invention relates to a method for plotting graphical data that includes time information not associated with either axis of the plot.
Data that exists in tables or spreadsheets is commonly graphed in order to make the analysis of what the data can reveal more easily and quickly understood. One of the most common types of graph is an X versus Y scatter plot hereafter referred to as “scatter plot.”
Scatter plots can be used to display two related sets of data on a single chart. This is particularly helpful if you want to make predictions based on the data. For example from a plot of height versus weight for an average male you could predict the average weight of males for a particular average height from such a plot. However such a graph is limited as to what can be learned from it when looking for trends over a period of time.
For example, if the height versus weight data were available for several years and you wanted to know if the relationship of height versus weight had changed over a time. A single scatter plot could provide this information in the following way. If the data from different years is represented by different colors or different symbols on the graph, then, by referring to a legend that defines which color or symbol refers to which year; you could perform the analysis. This method has the drawback of requiring the operator to perform some analysis or specific activity to determine the age of the data on the plot.
Accordingly, there is a need in the art for a method of determining the relative age of data points on a plot without having to perform any analysis.
The disclosed method relates to conveying a time component in a data representation comprising: attaching a time stamp to a data point and calculating an opacity for said data point based upon a time component of said data point.
The disclosed computer program relates to conveying a time component in a data representation comprising: receiving at least one data point with a time component, and calculating an opacity for said data point based upon the time component of said data point.
The disclosed system relates to conveying a time component in a data representation comprising: attaching a time stamp to a data point, and calculating an opacity for said data point based upon at least one time component of said data point.
The following descriptions should not be considered limiting in any way. With reference to the accompanying drawings, like elements are numbered alike:
A detailed description of several embodiments of the disclosed apparatus and method are presented herein by way of exemplification and not limitation with reference to the Figures.
Referring to
The proportionality between age and opacity can be a linear function, a logarithmic function or any other function a user chooses including a plurality of different functions. The proportionality of opacity to age may be directly proportional, such that the older data points are less opaque than newer data points, or inversely proportional such that older data points are more opaque than the newer data points. The opacity may also be user defined for each individual data point thereby creating an estimated proportionality. Defining a proportionality function with computer software has the advantage of letting the computer calculate the opacity for each data point as opposed to performing the calculations manually.
Referring again to FIG.1 and to the spreadsheet of data in
A fourth column 24 labeled ‘Age (years)’ of the spreadsheet 20 lists a time component 23 specifically the age of the data in each row relative to a user specified time frame, which in this example, is the year 2000. A fifth column 26 of the spreadsheet 20 labeled ‘Opacity (% opacity)’ lists the opacity value 25 that will be used to plot the data point for that particular row of data. In the spreadsheet 20 the value for % opacity is calculated from the function:
% Opacity=100−Age
Thus for the year 1950 the % Opacity=100−50=50. This function can be put into column 26 so that the value is automatically calculated from the data in ‘Year’ column 27.
Through the use of software modified to plot data points with varying levels of opacity in accordance with an embodiment of the present invention, the data in the spreadsheet 20 is graphed in scatter plot 1. The software modification involves new commands that permit a user to assign opacity values from a data set to data points that are to be plotted. In the example of
Referring now to the scatter plot 1 of
With the aforementioned knowledge of the data presented in the scatter plot 1 a cursory review of the scatter plot 1 reveals that a trend exists. The trend over the past 50 years has been an increase in the average height and weight of 25 year old males. More specifically, one can tell that the increases in both height and weight have occurred in every one of the past five decades. By using varying levels of opacity for the varying ages of data points one can readily determine the relative age of different data points without having to refer to key to see which color or symbol, for example, represents which age
Referring to
The sequential order of the nine steps described above is only an illustration of one embodiment of the present invention. The step numbers given are for purposes of distinguishing one step from another and are not used to define an order. Other embodiments of the present invention may have the nine steps in various other orders as well as omit some steps or add some steps while still remaining within the scope of the present invention. For example, the receiving of an output request may come before any data is received, or it may come after all the data has been received.
As the CPU 42 receives data from the data input 60 it will immediately attach a time stamp from clock 44 to each data point and send the data point and the time stamp to be stored in memory 46. This process can proceed indefinitely. When a request for information regarding the data is made, for example, to plot the pressure versus temperature from a start time to an end time with opacity of the data points being proportional to the age of the data points according to a certain algorithm, the following takes place. The CPU 42 retrieves the data points from memory 46 calculates the age of the data points and calculates the opacity according to the defined algorithm and assigns an opacity to each data point relative to the age from the end time. The user may also use the start time in addition to the end time in the determination of opacity by having the computer calculate a time percentage relative to a time window defined by the start and end times.
The following is an example of an algorithm for determining an opacity value for data points relative to a time window. The source of the data is not important for the purposes of the example and will therefore not be discussed.
The above algorithm assigns values to the data as follows: If the data point is from 50% or later in the time window, the data point is assigned the maximum opacity (255 in this example), if the data point lies within the first 11.8% of the time window, then the data point is assigned the minimum opacity (60 in this example). However, if the data point lies between 11.8% and 50% of the time window, the opacity increases from the minimum opacity to the maximum opacity in a linear function as defined in the calculation for opacity stated above.
Based on a user's request for output the CPU 42 will retrieve all data points from T1 through T2 and their corresponding time stamps from memory 46. It will calculate the age of the data point relative to the time window requested and, based on the algorithm defined, assign an opacity value to each of the data points. The CPU 42 will then create an output file 48 for outputting to the output device 40 specified by the user. Printers 72, monitors 74, plotters 76 and electronic files 78 are representative of a partial list of possible output devices 70.
In the above example transparency values are given that correlate to certain opacity values since many existing software programs have the capability of displaying and outputting features with varying levels of transparency and not opacity.
Opacity can be thought of as the inverse of transparency, which means that a low level of opacity is highly transparent and will therefore let details of what is behind the symbol show through the symbol. For purposes of embodiments of the present invention, the word opacity will cover this condition as well as a second condition. The second condition is when a symbol is lighter in shade such that it appears more transparent however it is still 100% opaque in the sense that no details of objects behind show through the symbol. Throughout this disclosure the term opacity covers both meanings. Therefore, a low opacity can result in a light image that shows some details of what is behind it and a low opacity can result in a light image that shows no details of what is behind it.
Another embodiment of the present invention may plot a continuous line instead of discreet symbols. Such a line may include automatic smoothing features such as spline curves for example or may use straight lines between discreet data points. In this example the opacity of the line will vary based on the age of the data points nearest the line.
Although embodiments presented above reference a two axes coordinate system it should be understood that embodiments of the present invention are not limited to such a coordinate system. In fact coordinate systems with just one or more than two axes as well as any other system of graphing data may be employed in other embodiments of the present invention.
As described above, embodiments may be in the form of computer-implemented processes and apparatuses for practicing those processes. In exemplary embodiments, the invention is embodied in computer program code. Embodiments include computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. Embodiments include computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The technical effect of the executable instructions is to convey a time component in a data representation through variations in opacity values for the graphical data points.
While the embodiments of the disclosed method have been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the embodiments of the disclosed method. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the embodiments of the disclosed method without departing from the essential scope thereof. Therefore, it is intended that the embodiments of the disclosed method not be limited to the particular embodiments disclosed as the best mode contemplated for carrying out the embodiments of the disclosed method, but that the embodiments of the disclosed method will include all embodiments falling within the scope of the appended claims.