diff --git a/Demo/Scripts/Demo60_Heatmap.cs b/Demo/Scripts/Demo60_Heatmap.cs new file mode 100644 index 00000000..499dc9ef --- /dev/null +++ b/Demo/Scripts/Demo60_Heatmap.cs @@ -0,0 +1,95 @@ +using System.Collections.Generic; +using UnityEngine; +using XCharts; + +[DisallowMultipleComponent] +[ExecuteInEditMode] +public class Demo60_Heatmap : MonoBehaviour +{ + private HeatmapChart chart; + + void Awake() + { + chart = gameObject.GetComponent(); + if (chart == null) + { + chart = gameObject.AddComponent(); + } + chart.title.text = "HeatmapChart"; + chart.tooltip.type = Tooltip.Type.None; + chart.grid.left = 100; + chart.grid.right = 60; + chart.grid.bottom = 60; + //目前只支持Category + chart.xAxises[0].type = Axis.AxisType.Category; + chart.yAxises[0].type = Axis.AxisType.Category; + + chart.xAxises[0].boundaryGap = true; + chart.xAxises[0].boundaryGap = true; + + chart.xAxises[0].splitNumber = 10; + chart.yAxises[0].splitNumber = 10; + + //清空数据重新添加 + chart.RemoveData(); + var serie = chart.AddSerie(SerieType.Heatmap, "serie1"); + + //设置样式 + serie.itemStyle.show = true; + serie.itemStyle.borderWidth = 1; + serie.itemStyle.borderColor = Color.clear; + + //设置高亮样式 + serie.emphasis.show = true; + serie.emphasis.itemStyle.show = true; + serie.emphasis.itemStyle.borderWidth = 1; + serie.emphasis.itemStyle.borderColor = Color.black; + + //设置视觉映射组件 + chart.visualMap.enable = true; + chart.visualMap.max = 10; + chart.visualMap.range[0] = 0f; + chart.visualMap.range[1] = 10f; + chart.visualMap.orient = Orient.Vertical; + chart.visualMap.calculable = true; + chart.visualMap.location.align = Location.Align.BottomLeft; + chart.visualMap.location.bottom = 100; + chart.visualMap.location.left = 30; + + //清空颜色重新添加 + chart.visualMap.inRange.Clear(); + + var heatmapGridWid = 10f; + int xSplitNumber = (int)(chart.coordinateWid / heatmapGridWid); + int ySplitNumber = (int)(chart.coordinateHig / heatmapGridWid); + var colors = new List{"#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf", + "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"}; + foreach (var str in colors) + { + chart.visualMap.inRange.Add(ThemeInfo.GetColor(str)); + } + //添加xAxis的数据 + for (int i = 0; i < xSplitNumber; i++) + { + chart.AddXAxisData((i + 1).ToString()); + } + //添加yAxis的数据 + for (int i = 0; i < ySplitNumber; i++) + { + chart.AddYAxisData((i + 1).ToString()); + } + for (int i = 0; i < xSplitNumber; i++) + { + for (int j = 0; j < ySplitNumber; j++) + { + var value = 0f; + var rate = Random.Range(0, 101); + if (rate > 70) value = Random.Range(8f, 10f); + else value = Random.Range(1f, 8f); + var list = new List { i, j, value }; + //至少是一个三位数据:(x,y,value) + chart.AddData(0, list); + } + } + } +} diff --git a/Demo/Scripts/Demo60_Heatmap.cs.meta b/Demo/Scripts/Demo60_Heatmap.cs.meta new file mode 100644 index 00000000..4112a381 --- /dev/null +++ b/Demo/Scripts/Demo60_Heatmap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 616b96a944de949af9aa66767a2fbff7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/UI/Component/VisualMap.cs b/Scripts/UI/Component/VisualMap.cs index 041223f1..5d16f7ff 100644 --- a/Scripts/UI/Component/VisualMap.cs +++ b/Scripts/UI/Component/VisualMap.cs @@ -358,7 +358,7 @@ namespace XCharts { var radius = triangleLen / 2; var pos1 = centerPos + Vector3.left * itemHeight / 2; - var cpos = new Vector3(pos1.x + rangeMinHeight - radius, pos1.y + itemWidth / 2 + radius); + var cpos = new Vector3(pos1.x + rangeMinHeight, pos1.y + itemWidth / 2 + radius); return local.x >= cpos.x - radius && local.x <= cpos.x + radius && local.y >= cpos.y - radius && local.y <= cpos.y + radius; }