コード例 #1
0
    // ........................................................................ Helper methods

    /// <summary>
    /// List which visualizations are suitable for the combination of provided attributes.
    /// </summary>
    /// <param name="dataSetID">ID of DataSet to use.</param>
    /// <param name="variables">Names of the attributes to visualize.</param>
    /// <returns>List of suitable visualizations.</returns>
    public VisType[] ListPossibleVisualizations(int dataSetID, string[] variables)
    {
        int[] nomIDs, ordIDs, ivlIDs, ratIDs;

        var dataProvider = Services.DataBase();

        AttributeProcessor.ExtractAttributeIDs(dataProvider.dataSets[dataSetID], variables, out nomIDs, out ordIDs, out ivlIDs, out ratIDs);

        var suitableVisTypes = new List <VisType>();

        foreach (var visType in generators.Keys)
        {
            if (generators[visType].CheckIfSuitable(dataSetID, variables))
            {
                suitableVisTypes.Add(visType);
            }
        }

        if (suitableVisTypes.Count == 0)
        {
            return new VisType[] { VisType.PCP2D }
        }
        ;
        else
        {
            return(suitableVisTypes.ToArray());
        }
    }
コード例 #2
0
        public override AETVPCP CreatePCP(DataSet data, string[] attIDs, bool isMetaVis = false)
        {
            var pcp = Instantiate(ETV3DParallelCoordinatesPlotPrefab);

            int[] nomIDs, ordIDs, ivlIDs, ratIDs;

            AttributeProcessor.ExtractAttributeIDs(data, attIDs, out nomIDs, out ordIDs, out ivlIDs, out ratIDs);

            pcp.Init(data, nomIDs, ordIDs, ivlIDs, ratIDs, isMetaVis);
            pcp.ChangeColoringScheme(ETVColorSchemes.SplitHSV);

            return(pcp);
        }
コード例 #3
0
        public override AETV CreateFlexiblePCP(DataSet data, string[] attIDs, AAxis axisA, AAxis axisB)
        {
            var flexPCP = Instantiate(ETV3DFlexiblePCPPrefab);

            // Get attribute IDs of the given attributes.
            int[] nomIDs, ordIDs, ivlIDs, ratIDs;
            AttributeProcessor.ExtractAttributeIDs(data, attIDs, out nomIDs, out ordIDs, out ivlIDs, out ratIDs);

            flexPCP.Init(data, nomIDs, ordIDs, ivlIDs, ratIDs, axisA, axisB, true);
            flexPCP.DrawGraph();

            return(flexPCP);
        }
コード例 #4
0
    /// <summary>
    /// Checks whether the given attributes of the given DataSet are suitable for
    /// the visualization type in question
    /// </summary>
    /// <param name="dataSetID">ID of the data set</param>
    /// <param name="attributes">attributes in question</param>
    /// <returns>if suitable</returns>
    public bool CheckIfSuitable(int dataSetID, string[] variables)
    {
        int[] nomIDs, ordIDs, ivlIDs, ratIDs;

        AttributeProcessor.ExtractAttributeIDs(
            Services.DataBase().dataSets[dataSetID],
            variables,
            out nomIDs,
            out ordIDs,
            out ivlIDs,
            out ratIDs);

        return(CheckTemplate(nomIDs.Length, ordIDs.Length, ivlIDs.Length, ratIDs.Length));
    }