void CalculateTicksScale(DataBinding.DataObject srcData) { float range = AttributeRange.y - AttributeRange.x; if (srcData.Metadata[axisId].binCount > range + 2) { ticksScaleFactor = 1.0f / (srcData.Metadata[axisId].binCount / 10); } else if (range < 20) { // each tick mark represents one increment ticksScaleFactor = 1; } else if (range < 50) { ticksScaleFactor = 5; } else if (range < 200) { // each tick mark represents ten increment ticksScaleFactor = 10; } else if (range < 600) { ticksScaleFactor = 50; } else if (range < 3000) { ticksScaleFactor = 100; } else { ticksScaleFactor = 500; } }
// takes a dimension name and an index of a datapoint, and returns a string value for that dimension string StringValFromDataObj(DataBinding.DataObject dataObj, string dimensionName, int index) { float xval = dataObj.getOriginalDimension(dimensionName)[index]; string xvalstr = xval.ToString(); if (dataObj.TypeDimensionDictionary1[dataObj.dimensionToIndex(dimensionName)] == "string") { xvalstr = dataObj.TextualDimensions[xval]; } ; return(xvalstr); }
public void Init(DataBinding.DataObject srcData, int idx, bool isPrototype = false) { SourceIndex = idx; axisId = idx; name = "axis " + srcData.indexToDimension(idx); AttributeRange = srcData.DimensionsRange[axisId]; label.text = srcData.Identifiers[idx]; UpdateRangeText(); this.isPrototype = isPrototype; CalculateTicksScale(srcData); UpdateTicks(); }
void Start() { sceneAxes = new List <Axis>(); dataObject = new DataBinding.DataObject(sourceData.text, metadata); // setup default visual settings VisualisationAttributes.Instance.sizes = Enumerable.Range(0, SceneManager.Instance.dataObject.DataPoints).Select(_ => 1f).ToArray(); List <float> categories = SceneManager.Instance.dataObject.getNumberOfCategories(VisualisationAttributes.Instance.ColoredAttribute); int nbCategories = categories.Count; Color[] palette = Colors.generateColorPalette(nbCategories); Dictionary <float, Color> indexCategoryToColor = new Dictionary <float, Color>(); for (int i = 0; i < categories.Count; i++) { indexCategoryToColor.Add(categories[i], palette[i]); } VisualisationAttributes.Instance.colors = Colors.mapColorPalette(SceneManager.Instance.dataObject.getDimension(VisualisationAttributes.Instance.ColoredAttribute), indexCategoryToColor); // create the axis if (createAxisShelf) { for (int i = 0; i < dataObject.Identifiers.Length; ++i) { Vector3 v = new Vector3(1.352134f - (i % 7) * 0.35f, 1.506231f - (i / 7) / 2f, 0f);// -0.4875801f); GameObject obj = (GameObject)Instantiate(axisPrefab); obj.transform.position = v; Axis axis = obj.GetComponent <Axis>(); axis.Init(dataObject, i, false); axis.InitOrigin(v, obj.transform.rotation); axis.tag = "Axis"; AddAxis(axis); } } }
public void setDebug(string dbg) { DataBinding.DataObject srcData = SceneManager.Instance.dataObject; label.text = srcData.Identifiers[axisId] + "(" + dbg + ")"; }