Class AttributeVisualizationPanel

  • All Implemented Interfaces:
    ImageObserver, MenuContainer, Serializable, Accessible, weka.gui.visualize.PrintableHandler

    public class AttributeVisualizationPanel
    extends weka.gui.visualize.PrintablePanel
    Creates a panel that shows a visualization of an attribute in a dataset. For nominal attribute it shows a bar plot, with each bar corresponding to each nominal value of the attribute with its height equal to the frequecy that value appears in the dataset. For numeric attributes, it displays a histogram. The width of an interval in the histogram is calculated using Scott's(1979) method:
    intervalWidth = Max(1, 3.49*Std.Dev*numInstances^(1/3)) Then the number of intervals is calculated by:
    intervals = max(1, Math.round(Range/intervalWidth); This panel refers to weka.gui.AttributeVisualizationPanel
    Author:
    Ashraf M. Kibriya (amk14@cs.waikato.ac.nz), Yongheng Ma (2560653665@qq.com)
    See Also:
    Serialized Form
    • Field Detail

      • m_data

        protected weka.core.Instances m_data
        This holds the current set of instances
      • m_as

        protected weka.core.AttributeStats m_as
        This holds the attribute stats of the current attribute on display. It is calculated in setAttribute(int idx) when it is called to set a new attribute index.
      • m_asCache

        protected weka.core.AttributeStats[] m_asCache
        Cache of attribute stats info for the current data set
      • m_attribIndex

        protected int m_attribIndex
        This holds the index of the current attribute on display and should be set through setAttribute(int idx).
      • m_maxValue

        protected double m_maxValue
        This holds the max value of the current attribute. In case of nominal attribute it is the highest count that a nominal value has in the attribute (given by m_as.nominalWeights[i]), otherwise in case of numeric attribute it is simply the maximum value present in the attribute (given by m_as.numericStats.max). It is used to calculate the ratio of the height of the bars with respect to the height of the display area.
      • m_histBarCounts

        protected double[] m_histBarCounts
        This array holds the count (or height) for the each of the bars in a barplot or a histogram. In case of barplots (and current attribute being nominal) its length (and the number of bars) is equal to the number of nominal values in the current attribute, with each field of the array being equal to the count of each nominal that it represents (the count of ith nominal value of an attribute is given by m_as.nominalWeights[i]). Whereas, in case of histograms (and current attribute being numeric) the width of its intervals is calculated by Scott's(1979) method:
        intervalWidth = Max(1, 3.49*Std.Dev*numInstances^(1/3)) And the number of intervals by:
        intervals = max(1, Math.round(Range/intervalWidth); Then each field of this array contains the number of values of the current attribute that fall in the histogram interval that it represents.
        NOTE: The values of this array are only calculated if the class attribute is not set or if it is numeric.
      • m_barRange

        protected double m_barRange
        Contains the range of each bar in a histogram. It is used to work out the range of bar the mouse pointer is on in getToolTipText().
      • m_classIndex

        protected int m_classIndex
        Contains the current class index.
      • m_colorAttrib

        protected JComboBox m_colorAttrib
        This stores and lets the user select a class attribute. It also has an entry "No Class" if the user does not want to set a class attribute for colouring.
    • Constructor Detail

      • AttributeVisualizationPanel

        public AttributeVisualizationPanel()
        Constructor - If used then the class will not show the class selection combo box.
      • AttributeVisualizationPanel

        public AttributeVisualizationPanel​(boolean showColouringOption)
        Constructor.
        Parameters:
        showColouringOption - - should be true if the class selection combo box is to be displayed with the histogram/barplot, or false otherwise. P.S: the combo box is always created it just won't be shown if showColouringOption is false.
    • Method Detail

      • setInstances

        public void setInstances​(weka.core.Instances newins)
        Sets the instances for use
        Parameters:
        newins - a set of Instances
      • getColorBox

        public JComboBox getColorBox()
        Returns the class selection combo box if the parent component wants to place it in itself or in some component other than this component.
      • getColoringIndex

        public int getColoringIndex()
        Get the coloring (class) index for the plot
        Returns:
        an int value
      • setColoringIndex

        public void setColoringIndex​(int ci)
        Set the coloring (class) index for the plot
        Parameters:
        ci - an int value
      • setAttribute

        public void setAttribute​(int index)
        Tells the panel which attribute to visualize.
        Parameters:
        index - The index of the attribute
      • calcGraph

        public void calcGraph​(int panelWidth,
                              int panelHeight)
        Recalculates the barplot or histogram to display, required usually when the attribute is changed or the component is resized.
      • getToolTipText

        public String getToolTipText​(MouseEvent ev)
        Returns "<nominal value> [<nominal value count>]" if displaying a bar plot and mouse is on some bar. If displaying histogram then it
      • returns "count <br> [<bars Range>]" if mouse is on the first bar.
      • returns "count <br> (<bar's Range>]" if mouse is on some bar other than the first one.
      • Otherwise it returns ""
Overrides:
getToolTipText in class JComponent
Parameters:
ev - The mouse event