Abstract:
Described is a system and method for grouping elements whose data falls below a grouping threshold, and for displaying the grouped elements as a single portion of a graphical chart. Briefly stated, the system and method allow a user to dynamically increase a grouping threshold from a default value to an adjusted value. The data for each elements falling below the adjusted grouping threshold is aggregated. The grouped elements are then displayed as a single slice with a value of the aggregated data rather than being displayed as individual slices. In this way, the important information, which normally means the bigger and more significant slices, is more clearly visible. Further more, a single label may be associated with the group, thereby eliminating problems associated with the layout of multiple labels for each individual grouped element.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     One of the biggest factors considered in the design and development of software applications is ease of use. Often the difference between a successful software application and an unsuccessful software application is decided by the user&#39;s experience in interacting with it. Because of this, software developers generally strive to simplify the user&#39;s experience.  
         [0002]     One particularly competitive segment of the software industry is data analysis software. Data analysis software deals with analyzing data and presenting the data to the user in a meaningful way. Typically, data analysis software includes mechanisms to generate graphical representations of the data, such as pie charts, bar charts, line graphs, and the like. Some data analysis software includes rich features to ensure that those graphical representations convey as much information about the underlying data as possible. For example, data analysis software that generates pie charts may include the ability to alter the color of the pie slices, change the size of the pie chart, modify the layout of labels, and alter other visual features of the pie chart. Each of these attributes is intended to allow the user to graphically display information about underlying data in the most meaningful way possible.  
         [0003]     Sometimes, the data underlying the graphical representation is not all equally important to the user. This may be especially true in the case of pie charts. In some cases, a pie chart may display data associated with very many elements of data but the pie chart is dominated by a relatively small number of elements. For example, in a series of 10 or more elements, as few as two or three may make up 80 percent or more of the pie chart, with the remaining elements being displayed as very small slices. Typically, the user is most interested in the elements of data that dominate the overall presentation, and is less interested in the smaller elements. In cases like this, the smaller slices of the pie chart, which represent the smaller elements, are more distracting to the user than informative. However, at least in the case of a pie chart, those smaller elements cannot be simply eliminated because to do so would skew the overall presentation. In addition, labels are difficult to place on such a pie chart because an appealing layout for the few dominant slices may result in a less than satisfactory layout for the remaining slices. For the purpose of this discussion, the term “element” refers to a data entry that ordinarily results in a slice on the pie chart.  
         [0004]     Users today have few options to address these issues. For instance, a user may modify the data entries themselves to make the pie chart more visually appealing, such as by manually combining less interesting elements from the data. Another option for the user would be setting a threshold that will remove the smaller slices from the pie. While doing so, the user is also changing the proportion of the remaining slices to the whole. However, these solutions do not make the user experience pleasant or it distorts the data. Unfortunately, an acceptable solution to these issues has eluded those skilled in the art.  
       SUMMARY OF THE INVENTION  
       [0005]     The present invention is directed at a system and method for grouping elements whose data falls below a grouping threshold, and displaying the grouped elements as a single portion of a graphical chart. Briefly stated, the system and method allow a user to dynamically increase a grouping threshold from a default value to an adjusted value. The data for each elements falling below the adjusted grouping threshold is aggregated. The grouped elements are then displayed as a single slice with a value of the aggregated data rather than being displayed as individual slices. In this way, several smaller slices may be displayed as a group, thereby eliminating the distraction of having smaller elements dispersed among elements of greater value. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0006]      FIG. 1  is a functional block diagram illustrating components of a software environment in which the present invention may be implemented.  
         [0007]      FIG. 2  is a graphical representation of an input device having a rotational input mechanism, as may be used in implementations of the invention.  
         [0008]      FIG. 3  is an illustrative screen shot of a user interface that may be presented by the data analysis application of  FIG. 1 , displaying a pie chart with a group of elements each displayed as single slices, in accordance with one implementation of the invention.  
         [0009]      FIG. 4  is another illustrative screen shot of the user interface presented by the data analysis application of  FIG. 1 , displaying a pie chart with a group of elements displayed as a single slice, in accordance with one implementation of the invention.  
         [0010]      FIG. 5  is a logical block diagram generally illustrating a process for grouping elements for display as a single slice of a pie chart, in accordance with one implementation of the invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0011]      FIG. 1  is a functional block diagram illustrating components of a software environment in which the present invention may be implemented. Shown in  FIG. 1  is a data analysis application  120  that includes analytical functions as well as other functions to enable a user to manipulate and understand data. In one example, the data analysis application  120  may be a spreadsheet application or the like. One function of the data analysis application may be to create images that graphically represent data. For instance, tables of numerical data, such as tabular data  132 , may not convey meaningful information to a user until the data is presented in a graphical way. Bar charts, line charts, pie charts, and the like are typical graphical representations of data. In this implementation, the data analysis application  120  is configured to generate a pie chart from tabular data  132 .  FIG. 1  illustrates the pie chart as a pie chart object  130  having many properties associated with the pie chart. Those properties may include a size of the pie chart, colors associated with each slice, various labels that may be shown on the pie chart, and an origin. The data analysis application  120  includes mechanisms, described in greater detail below, for modifying the properties of the pie chart object  130 , including the number of slices and parameters of each slice.  
         [0012]     Also shown in  FIG. 1  is a device driver  110  associated with an input device. In this described embodiment, the input device may be a keyboard, a computer mouse, or similar input device. In a preferred implementation, at least one input device has a rotational input mechanism. Turning briefly to  FIG. 2 , a conventional computer mouse  200  is illustrated that may be used in implementations of the invention. As will be appreciated by those skilled in the art, the mouse  200  shown includes a rotational input mechanism (e.g., a wheel)  201 . Such a conventional wheel mouse  200  typically is used to scroll documents up and down in a software application, such as word processing documents or the like. As will be appreciated, if the wheel  201  is rotated in either direction, a signal is issued to the device driver  110  by the mouse  200 . The signal indicates the direction in which the wheel  201  was rotated and the amount of the rotation. Other signals may also be issued by the mouse  200 , such as to indicate movement of the mouse  200  or the pressing of one or more buttons on the mouse  200 .  
         [0013]     Returning to  FIG. 1 , signals from the input device are received by the device driver  110 . In the case where the device driver  110  corresponds to a wheel mouse, such as the one illustrated in  FIG. 2 , typical signals may indicate that the mouse is moving in one or more directions, that a button on the mouse has been pressed, or that the rotational input mechanism has been rotated. In the case where the input device is a keyboard, typical signals indicate which of several keyboard keys has been pressed, or which combination of keys. In response to such a signal, the device driver  110  is typically configured to indicate the existence of the signal to an operating system, often referred to as “firing” or “raising” an “event.” The operating system may then handle the event in any conventional manner. Often, in the case of input device drivers, a user interface module  115  retrieves the signal from the device driver  110  and then makes the signal available to other software modules that have indicated an interest in the particular event raised.  
         [0014]     Most software applications, such as the data analysis application  120 , receive user input events, including those received from a mouse or keyboard. Typically, software applications include a message queue  125  into which the user interface module  115  posts signals from input devices. In the current example, a signal from an input device, such as the wheel mouse or keyboard, is received by the device driver  110 , retrieved from the device driver  110  by the user interface module  115 , and posted to the message queue  125  of the data analysis application  120 . At that point, the data analysis application  120  may handle the message in any practical way. Certain signals in the message queue  125  are interpreted as modifying another signal in the message queue  125 . For instance, the existence of a Ctl_Down signal (meaning that a control key on the keyboard has been pressed) in the message queue  125  may cause a subsequently-received signal, such as a Wheel_Rotate signal (meaning that the wheel of the mouse has been rotated), to be interpreted differently than its default manner.  
         [0015]     Also shown in  FIG. 1  is a data field that stores a value for a grouping threshold  127 . In accordance with the invention, the data analysis application  120  is configured to group data elements from tabular data  132  into a single group slice when displayed by pie chart object  130 . The criteria that determines whether an element is displayed as a unique slice or as part of the group slice is whether the value of the element data exceeds the grouping threshold  127 . In other words, element data having a value above the grouping threshold  127  are displayed as unique slices in the pie chart. Element data having a value below the grouping threshold  127  are aggregated and the aggregate value is displayed as a single slice of the pie chart. In further accordance with the invention, the value of the grouping threshold  127  may be dynamically modified, even while the user is viewing the displayed pie chart. The data analysis application  120  responds to messages in the message queue  125  that indicate a change of the grouping threshold by dynamically modifying the grouping threshold and causing the pie chart object  130  to redraw the pie chart based on the new grouping threshold. In a preferred implementation, the dynamic modification and redrawing may occur while the user is interacting with (e.g., viewing) the pie chart. In other words, while the user is viewing the pie chart, the user may issue input messages (e.g., mouse or keyboard commands) that dynamically cause slices of the pie chart to be grouped and displayed as a single slice. More user inputs may add additional elements to the group slice or remove elements from the group slice. In this way, the user experience of creating visually pleasing pie charts that display meaningful information is enhanced.  
         [0016]      FIGS. 3 and 4  are illustrative screen shots of a user interface that may be presented by the data analysis application  120  shown in  FIG. 1 . Shown in  FIG. 3  is a window  300  with a pie chart  301 . As will be appreciated, the pie chart  301  may be a graphical representation of tabular data  307  maintained by the data analysis application. The pie chart  301  is composed of several slices, each slice proportionally representing its associated data. For instance, a first slice, labeled “USA,” is displayed corresponding to an element in the tabular data  307  having the label “USA” and a value of 40 percent. Another slice, labeled “Sweden,” is displayed in association with an element in the tabular data  307  having the label “Sweden” and a value of 28 percent. A third slice, labeled “France,” is displayed in association with an element in the tabular data  307  having the label “France” and a value of 24 percent.  
         [0017]     Other slices, such as England and Japan, are also displayed in the pie chart in association with the remaining elements in the tabular data  307 . Each of the remaining elements has a value significantly below the value of each of the three largest elements. For that reason, the value to the user of any information associated with the smaller slices is likely outweighed by the visual distraction caused to the lager elements. Thus, the pie chart  301  illustrated in  FIG. 3  is a representation of one problem that conventional data analysis applications have failed to overcome.  
         [0018]     Also associated with the window  300  is a menu bar  310  having a Chart option  311  and a Grouping sub-option  312 . In accordance with one implementation of the invention, the grouping threshold of the pie chart  301  may be modified by activating the Grouping sub-option  312 , thereby invoking another input window (not shown). An input selection mechanism or field on that other input window may be used to modify the grouping threshold. However, that process, although effective, detracts from the user experience by taking the user&#39;s attention away from the pie chart  301 . In accordance with another implementation of the invention, activating a rotational input mechanism, such as the wheel of a computer mouse, causes the data analysis application to dynamically modify the grouping threshold of the pie chart  301 .  
         [0019]     Referring now to  FIG. 4 , a group slice  405  may be created in response to an input signal that indicates a change to the grouping threshold. As mentioned above, the grouping threshold may have a default value. It is envisioned that the default value will be low enough (e.g., zero) that all of the elements of the tabular data  307  will be displayed in unique slices of the pie chart  301  (as shown in  FIG. 3 ). Accordingly, the default value of the grouping threshold is illustrated as a dashed line  410  below the lowest-valued element of the tabular data  307 . However, in response to an input signal indicating a modification (e.g., an increase) of the grouping threshold, the value of the grouping threshold may be increased. The increased grouping threshold is indicated in  FIG. 3  as a second dashed line  411  above the highest element in the tabular data  307  that has a value below the grouping threshold. In this example, the input signal may cause the default grouping threshold to be increased from zero (corresponding to dashed line  410 ) to some value above 3 percent (corresponding to dashed line  411 ). In this way, each of the elements having values below the new grouping threshold (dashed line  411 ) are aggregated and displayed as a single group slice  405  having the label “Other.” In this way, the several smaller elements do not detract from the larger slices of the pie chart.  
         [0020]     In the preferred implementation of the invention, the input signal may be generated by activating a rotational input mechanism (e.g., a mouse wheel) while viewing the pie chart  301 . A modifier key, such as the Control (Ctrl) key on a keyboard, may also be used to distinguish the particular input signal as one affecting the grouping threshold. Accordingly, while viewing the pie chart  301 , the user may simply hold down the Ctrl key and rotate the mouse wheel in one direction to increase the grouping threshold such that elements are combined into the group slice  405 . It is envisioned that some incremental value will be either added to or subtracted from the grouping threshold corresponding to an incremental change in the rotational input mechanism. In short, the more the user turns the mouse wheel in one or the other direction, the more the grouping threshold is increased or decreased. By increasing the grouping threshold, more elements are added to the group slice  405 . By decreasing the grouping threshold, elements are removed from the group slice  405  and again displayed as individual slices. It will be appreciated that the pie chart  301  may be redrawn in response to each incremental change in the grouping threshold to provide the user with instant feedback on what the pie chart  301  will look like with the grouping threshold at the current value.  
         [0021]     Note that in this preferred implementation, the user need not select any menu items nor activate any other input window to modify the grouping threshold. By allowing direct and dynamic manipulation of the grouping threshold, the invention improves the user&#39;s experience, providing the data analysis application with a competitive advantage.  
         [0022]     Although described here in the context of a wheel mouse, it will be appreciated that other input devices, such as trackballs, may work suitably well also. Other alternatives may also become apparent to skilled artisans.  
         [0023]      FIG. 5  is a logical block diagram generally illustrating a process  500  for grouping elements into a group slice for display in a pie chart. The process  500  enters where a data analysis application includes tabular data containing a plurality of elements for representation in a pie chart, and the pie chart is ready for display. Processing begins at step  501 .  
         [0024]     At step  501 , the process draws the pie chart to a display window of the data analysis application. As shown in  FIG. 3 , the display may take the form of a window having a graphical representation of the pie chart. The pie chart is drawn with unique slices for each element of the tabular data that exceeds a grouping threshold. When first drawn, the pie chart may have unique slices for each element that exceeds a default grouping threshold, which may be zero or some other predetermined value.  
         [0025]     At step  502 , the process idles until an instruction is received to modify the grouping threshold (a “grouping instruction”). In one implementation, the grouping instruction may correspond to a signal generated by an input device having a rotational input mechanism. One example of such an input device is the conventional wheel mouse illustrated in  FIG. 2 . The signal generated is an indication that the rotational input mechanism has experienced a rotation, such as by a user pressing a Ctrl key on the keyboard while turning the wheel of the wheel mouse. The signal may also include a direction of the rotation, if applicable. One alternative signal may be generated by the rotation of a ball within a trackball. Other alternatives also exist and will be apparent to those skilled in the art. It will also be appreciated that although the process  500  idles at step  502 , many other tasks may be performed by the data analysis application unrelated to the grouping of elements in the pie chart. If the grouping instruction is detected, the process moves to step  503 .  
         [0026]     At step  503 , the grouping threshold is modified based on the grouping instruction. As mentioned, in one implementation the grouping instruction includes a direction of rotation of the rotational input mechanism. Based on that information, the current value of the grouping threshold may be either increased or decreased. The amount by which the grouping threshold is modified may be based on an incremental value associated with each incremental rotation of the rotational input mechanism. For instance, one incremental rotation of a mouse wheel may correspond to an increase of 10 units of measure. Each unit of measure may be based on the particular units associated with the tabular data, the fractional percentage of the pie chart, or the visual size of each displayed slice (e.g., the area of a slice or the number of pixels used to display a slice).  
         [0027]     For example, the data analysis application may increase the grouping threshold from zero to a given value, indicating that any element whose displayed size does not exceed the given value will be included in the group slice. Each incremental rotation of the mouse wheel then results in the grouping threshold being increased another incremental value until an acceptable appearance of the pie chart results. Rotating the mouse wheel in the opposite direction may decrease the grouping threshold by the same incremental value. The incremental value may be predefined or user selectable. It will be appreciated that as a user continues to rotate the wheel of the mouse, multiple signals may be generated for each predetermined increment by which the wheel is rotated. The incremental value (or gradient) may be repeatedly applied for each rotational increment experienced. Once the grouping threshold has been properly modified, the process  500  continues to step  504 .  
         [0028]     Another example might be in the case where the threshold is defined as the displayed size of the slice outer arc. In this case, when the pie has a certain size, some of the slices are under the threshold and are grouped while others are drawn individually. When the user resizes the pie to a bigger size, the arc size of each slice is enlarged. This results in some of the slices going over the threshold and out of the grouped slices.  
         [0029]     At step  504 , the data analysis application redraws the pie chart with each element not exceeding the current grouping threshold aggregated in to a single group slice, and the process  500  ends. It will be appreciated that the process shown allows a user to group elements into a group slice without resort to a separate input window. It will be appreciated that the system and method enabled by the present invention simplifies interaction with the data analysis application, thereby improving the user&#39;s experience and creating a competitive advantage.  
         [0030]     The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.