mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-15 12:40:12 +00:00
3.0
This commit is contained in:
111
Examples/Example60_Heatmap.cs
Normal file
111
Examples/Example60_Heatmap.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using XCharts.Runtime;
|
||||
|
||||
namespace XCharts.Example
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Example60_Heatmap : MonoBehaviour
|
||||
{
|
||||
private HeatmapChart chart;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<HeatmapChart>();
|
||||
if (chart == null)
|
||||
{
|
||||
chart = gameObject.AddComponent<HeatmapChart>();
|
||||
}
|
||||
chart.GetChartComponent<Title>().text = "HeatmapChart";
|
||||
chart.GetChartComponent<Tooltip>().type = Tooltip.Type.None;
|
||||
|
||||
var grid = chart.GetChartComponent<GridCoord>();
|
||||
grid.left = 100;
|
||||
grid.right = 60;
|
||||
grid.bottom = 60;
|
||||
|
||||
var xAxis = chart.GetChartComponent<XAxis>();
|
||||
var yAxis = chart.GetChartComponent<YAxis>();
|
||||
//目前只支持Category
|
||||
xAxis.type = Axis.AxisType.Category;
|
||||
yAxis.type = Axis.AxisType.Category;
|
||||
|
||||
xAxis.boundaryGap = true;
|
||||
xAxis.boundaryGap = true;
|
||||
|
||||
xAxis.splitNumber = 10;
|
||||
yAxis.splitNumber = 10;
|
||||
|
||||
//清空数据重新添加
|
||||
chart.RemoveData();
|
||||
var serie = chart.AddSerie<Heatmap>("serie1");
|
||||
|
||||
//设置样式
|
||||
serie.itemStyle.show = true;
|
||||
serie.itemStyle.borderWidth = 1;
|
||||
serie.itemStyle.borderColor = Color.clear;
|
||||
|
||||
//设置高亮样式
|
||||
serie.AddExtraComponent<EmphasisItemStyle>();
|
||||
serie.emphasisItemStyle.show = true;
|
||||
serie.emphasisItemStyle.borderWidth = 1;
|
||||
serie.emphasisItemStyle.borderColor = Color.black;
|
||||
|
||||
//设置视觉映射组件
|
||||
var visualMap = chart.GetChartComponent<VisualMap>();
|
||||
visualMap.max = 10;
|
||||
visualMap.range[0] = 0f;
|
||||
visualMap.range[1] = 10f;
|
||||
visualMap.orient = Orient.Vertical;
|
||||
visualMap.calculable = true;
|
||||
visualMap.location.align = Location.Align.BottomLeft;
|
||||
visualMap.location.bottom = 100;
|
||||
visualMap.location.left = 30;
|
||||
|
||||
//清空颜色重新添加
|
||||
|
||||
var heatmapGridWid = 10f;
|
||||
int xSplitNumber = (int) (grid.context.width / heatmapGridWid);
|
||||
int ySplitNumber = (int) (grid.context.height / heatmapGridWid);
|
||||
var colors = new List<string>
|
||||
{
|
||||
"#313695",
|
||||
"#4575b4",
|
||||
"#74add1",
|
||||
"#abd9e9",
|
||||
"#e0f3f8",
|
||||
"#ffffbf",
|
||||
"#fee090",
|
||||
"#fdae61",
|
||||
"#f46d43",
|
||||
"#d73027",
|
||||
"#a50026"
|
||||
};
|
||||
visualMap.AddColors(colors);
|
||||
//添加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<double> { i, j, value };
|
||||
//至少是一个三位数据:(x,y,value)
|
||||
chart.AddData(0, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user