using UnityEngine;
namespace XCharts.Runtime
{
///
/// Bar chart shows different data through the height of a bar, which is used in rectangular coordinate with at least 1 category axis.
/// || 柱状图(或称条形图)是一种通过柱形的高度(横向的情况下则是宽度)来表现数据大小的一种常用图表类型。
///
[AddComponentMenu("XCharts/BarChart", 14)]
[ExecuteInEditMode]
[RequireComponent(typeof(RectTransform))]
[DisallowMultipleComponent]
[HelpURL("https://xcharts-team.github.io/docs/configuration")]
public class BarChart : BaseChart
{
protected override void DefaultChart()
{
EnsureChartComponent();
EnsureChartComponent();
EnsureChartComponent();
RemoveData();
Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
for (int i = 0; i < 5; i++)
{
AddXAxisData("x" + (i + 1));
}
}
///
/// default zebra column chart.
/// || 斑马柱状图。
///
public void DefaultZebraColumnChart()
{
CheckChartInit();
var serie = GetSerie(0);
if (serie == null) return;
serie.barType = BarType.Zebra;
}
///
/// default capsule column chart.
/// || 胶囊柱状图。
///
public void DefaultCapsuleColumnChart()
{
CheckChartInit();
var serie = GetSerie(0);
if (serie == null) return;
serie.barType = BarType.Capsule;
}
///
/// default grouped column chart.
/// || 默认分组柱状图。
///
public void DefaultGroupedColumnChart()
{
CheckChartInit();
Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
}
///
/// default stacked column chart.
/// || 默认堆叠分组柱状图。
///
public void DefaultStackedColumnChart()
{
CheckChartInit();
var serie1 = GetSerie(0);
serie1.stack = "stack1";
var serie2 = Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
serie2.stack = "stack1";
}
///
/// default percent column chart.
/// || 默认百分比柱状图。
///
public void DefaultPercentColumnChart()
{
CheckChartInit();
var serie1 = GetSerie(0);
serie1.stack = "stack1";
serie1.barPercentStack = true;
var serie2 = Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
serie2.stack = "stack1";
serie2.barPercentStack = true;
}
///
/// default bar chart.
/// || 默认条形图。
///
public void DefaultBarChart()
{
CheckChartInit();
CovertColumnToBar(this);
}
///
/// default zebra bar chart.
/// || 默认斑马条形图。
///
public void DefaultZebraBarChart()
{
CheckChartInit();
var serie = GetSerie(0);
serie.barType = BarType.Zebra;
CovertColumnToBar(this);
}
///
/// default capsule bar chart.
/// || 默认胶囊条形图。
///
public void DefaultCapsuleBarChart()
{
CheckChartInit();
var serie = GetSerie(0);
serie.barType = BarType.Capsule;
CovertColumnToBar(this);
}
///
/// default grouped bar chart.
/// || 默认分组条形图。
///
public void DefaultGroupedBarChart()
{
CheckChartInit();
Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
CovertColumnToBar(this);
}
///
/// default stacked bar chart.
/// || 默认堆叠条形图。
///
public void DefaultStackedBarChart()
{
CheckChartInit();
var serie1 = GetSerie(0);
serie1.stack = "stack1";
var serie2 = Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
serie2.stack = "stack1";
CovertColumnToBar(this);
}
///
/// default percent bar chart.
/// || 默认百分比条形图。
///
public void DefaultPercentBarChart()
{
CheckChartInit();
var serie1 = GetSerie(0);
serie1.stack = "stack1";
serie1.barPercentStack = true;
var serie2 = Bar.AddDefaultSerie(this, GenerateDefaultSerieName());
serie2.stack = "stack1";
serie2.barPercentStack = true;
CovertColumnToBar(this);
}
private static void CovertColumnToBar(BarChart chart)
{
chart.ConvertXYAxis(0);
var xAxis = chart.GetChartComponent();
xAxis.axisLine.show = false;
xAxis.axisTick.show = false;
var yAxis = chart.GetChartComponent();
yAxis.axisTick.alignWithLabel = true;
}
}
}