public static Color GetAreaToColor(Serie serie, ThemeInfo theme, int index, bool highlight) { var areaStyle = serie.areaStyle; if (!ChartHelper.IsClearColor(areaStyle.toColor)) { var color = areaStyle.toColor; if (highlight) { if (!ChartHelper.IsClearColor(areaStyle.highlightToColor)) { color = areaStyle.highlightToColor; } else { color *= color; } } color.a *= areaStyle.opacity; return(color); } else { return(GetAreaColor(serie, theme, index, highlight)); } }
/// <summary> /// copy all configurations from theme. /// 复制主题的所有配置。 /// </summary> /// <param name="theme"></param> public void Copy(ThemeInfo theme) { m_Theme = theme.theme; m_Font = theme.m_Font; m_BackgroundColor = theme.m_BackgroundColor; m_LegendUnableColor = theme.m_LegendUnableColor; m_TitleTextColor = theme.m_TitleTextColor; m_TitleSubTextColor = theme.m_TitleSubTextColor; m_LegendTextColor = theme.m_LegendTextColor; m_AxisTextColor = theme.m_AxisTextColor; m_AxisLineColor = theme.m_AxisLineColor; m_AxisSplitLineColor = theme.m_AxisSplitLineColor; m_TooltipBackgroundColor = theme.m_TooltipBackgroundColor; m_TooltipTextColor = theme.m_TooltipTextColor; m_TooltipLabelColor = theme.m_TooltipLabelColor; m_TooltipLineColor = theme.m_TooltipLineColor; m_DataZoomLineColor = theme.m_DataZoomLineColor; m_DataZoomSelectedColor = theme.m_DataZoomSelectedColor; m_DataZoomTextColor = theme.m_DataZoomTextColor; m_VisualMapBackgroundColor = theme.m_VisualMapBackgroundColor; m_VisualMapBorderColor = theme.m_VisualMapBorderColor; m_ColorPalette = new Color32[theme.m_ColorPalette.Length]; for (int i = 0; i < theme.m_ColorPalette.Length; i++) { m_ColorPalette[i] = theme.m_ColorPalette[i]; } }
private static void InitPieTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, ThemeInfo themeInfo) { if (tooltip.runtimeDataIndex[serie.index] < 0) { return; } string key = serie.data[index].name; var serieData = serie.GetSerieData(index); var numericFormatter = GetItemNumericFormatter(tooltip, serie, serieData); float value = serieData.GetData(1); sb.Length = 0; if (!string.IsNullOrEmpty(serie.name)) { sb.Append(serie.name).Append(FormatterHelper.PH_NN); } sb.Append("<color=#").Append(themeInfo.GetColorStr(index)).Append(">● </color>"); if (!string.IsNullOrEmpty(key)) { sb.Append(key).Append(": "); } sb.Append(ChartCached.FloatToStr(value, numericFormatter)); }
internal Color GetAxisLineBackgroundColor(ThemeInfo theme, int index) { var color = !ChartHelper.IsClearColor(axisLine.barBackgroundColor) ? axisLine.barBackgroundColor : Color.grey; color.a *= axisLine.opacity; return(color); }
internal Color GetAxisLineColor(ThemeInfo theme, int index) { var color = !ChartHelper.IsClearColor(axisLine.barColor) ? axisLine.barColor : (Color)theme.GetColor(index); color.a *= axisLine.opacity; return(color); }
public static void UpdateLabelText(Series series, ThemeInfo themeInfo, List <string> legendRealShowName) { foreach (var serie in series.list) { if (!serie.label.show) { continue; } var colorIndex = legendRealShowName.IndexOf(serie.name); switch (serie.type) { case SerieType.Gauge: SetGaugeLabelText(serie); break; case SerieType.Ring: SetRingLabelText(serie, themeInfo); break; case SerieType.Liquid: SetLiquidLabelText(serie, themeInfo, colorIndex); break; } } }
public static Color GetLineColor(Serie serie, ThemeInfo theme, int index, bool highlight) { var color = Color.clear; if (highlight) { var itemStyleEmphasis = GetItemStyleEmphasis(serie, null); if (itemStyleEmphasis != null && !ChartHelper.IsClearColor(itemStyleEmphasis.color)) { color = itemStyleEmphasis.color; color.a *= itemStyleEmphasis.opacity; return(color); } } if (!ChartHelper.IsClearColor(serie.lineStyle.color)) { color = serie.lineStyle.GetColor(); } else if (!ChartHelper.IsClearColor(serie.itemStyle.color)) { color = serie.itemStyle.GetColor(); } if (ChartHelper.IsClearColor(color)) { color = (Color)theme.GetColor(index); color.a = serie.lineStyle.opacity; } if (highlight) { color *= color; } return(color); }
internal static Color GetItemColor(Serie serie, SerieData serieData, ThemeInfo theme, int index, bool highlight) { if (highlight) { var itemStyleEmphasis = GetItemStyleEmphasis(serie, serieData); if (itemStyleEmphasis != null && !ChartHelper.IsClearColor(itemStyleEmphasis.color)) { var color = itemStyleEmphasis.color; color.a *= itemStyleEmphasis.opacity; return(color); } } var itemStyle = GetItemStyle(serie, serieData); if (!ChartHelper.IsClearColor(itemStyle.color)) { var color = itemStyle.color; if (highlight) { color *= color; } color.a *= itemStyle.opacity; return(color); } else { var color = (Color)theme.GetColor(index); if (highlight) { color *= color; } color.a *= itemStyle.opacity; return(color); } }
private static void InitCoordinateTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, ThemeInfo themeInfo, bool isCartesian, DataZoom dataZoom = null) { string key = serie.name; float xValue, yValue; serie.GetXYData(index, dataZoom, out xValue, out yValue); var isIngore = serie.IsIgnorePoint(index); var serieData = serie.GetSerieData(index, dataZoom); var numericFormatter = GetItemNumericFormatter(tooltip, serie, serieData); if (isCartesian) { if (serieData != null && serieData.highlighted) { sb.Append(key).Append(!string.IsNullOrEmpty(key) ? " : " : ""); sb.Append("[").Append(ChartCached.FloatToStr(xValue, numericFormatter)).Append(",") .Append(ChartCached.FloatToStr(yValue, numericFormatter)).Append("]"); } } else { var valueTxt = isIngore ? tooltip.ignoreDataDefaultContent : ChartCached.FloatToStr(yValue, numericFormatter); sb.Append("<color=#").Append(themeInfo.GetColorStr(serie.index)).Append(">● </color>") .Append(key).Append(!string.IsNullOrEmpty(key) ? " : " : "") .Append(valueTxt); } }
protected override void OnThemeChanged() { base.OnThemeChanged(); foreach (var radar in m_Radars) { radar.splitArea.color.Clear(); switch (m_ThemeInfo.theme) { case Theme.Dark: radar.splitArea.color.Add(ThemeInfo.GetColor("#6f6f6f")); radar.splitArea.color.Add(ThemeInfo.GetColor("#606060")); break; case Theme.Default: radar.splitArea.color.Add(ThemeInfo.GetColor("#f6f6f6")); radar.splitArea.color.Add(ThemeInfo.GetColor("#e7e7e7")); break; case Theme.Light: radar.splitArea.color.Add(ThemeInfo.GetColor("#f6f6f6")); radar.splitArea.color.Add(ThemeInfo.GetColor("#e7e7e7")); break; } } InitIndicator(); }
private static void InitScatterTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, ThemeInfo themeInfo) { if (!tooltip.runtimeSerieDataIndex.ContainsKey(serie.index)) { return; } var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index]; if (!string.IsNullOrEmpty(serie.name)) { sb.Append(serie.name).Append(PH_NN); } for (int i = 0; i < dataIndexList.Count; i++) { var dataIndex = dataIndexList[i]; var serieData = serie.GetSerieData(dataIndex); var numericFormatter = GetItemNumericFormatter(tooltip, serie, serieData); float xValue, yValue; serie.GetXYData(dataIndex, null, out xValue, out yValue); sb.Append("<color=#").Append(themeInfo.GetColorStr(serie.index)).Append(">● </color>"); if (!string.IsNullOrEmpty(serieData.name)) { sb.Append(serieData.name).Append(": "); } sb.AppendFormat("({0},{1})", ChartCached.FloatToStr(xValue, numericFormatter), ChartCached.FloatToStr(yValue, numericFormatter)); if (i != dataIndexList.Count - 1) { sb.Append("\n"); } } }
private static void SetLiquidLabelText(Serie serie, ThemeInfo themeInfo, int colorIndex) { var serieData = serie.GetSerieData(0); if (serieData == null) { return; } var serieLabel = SerieHelper.GetSerieLabel(serie, serieData, serieData.highlighted); if (serieLabel.show && serieData.labelObject != null) { if (!serie.show || !serieData.show) { serieData.SetLabelActive(false); return; } var value = serieData.GetData(1); var total = serie.max - serie.min; var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total); serieData.SetLabelActive(true); serieData.labelObject.SetText(content); serieData.labelObject.SetLabelColor(GetLabelColor(serie, themeInfo, colorIndex)); serieData.labelObject.SetLabelPosition(serieData.labelPosition + serieLabel.offset); } }
private static void InitDefaultContent(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, string category, ThemeInfo themeInfo = null, DataZoom dataZoom = null, bool isCartesian = false) { switch (serie.type) { case SerieType.Line: case SerieType.Bar: InitCoordinateTooltip(ref sb, tooltip, serie, index, themeInfo, isCartesian, dataZoom); break; case SerieType.Scatter: case SerieType.EffectScatter: InitScatterTooltip(ref sb, tooltip, serie, index, themeInfo); break; case SerieType.Radar: break; case SerieType.Pie: InitPieTooltip(ref sb, tooltip, serie, index, themeInfo); break; case SerieType.Ring: InitRingTooltip(ref sb, tooltip, serie, index, themeInfo); break; case SerieType.Heatmap: break; case SerieType.Gauge: break; } }
public static void InitRadarTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, Radar radar, ThemeInfo themeInfo) { var dataIndex = tooltip.runtimeDataIndex[1]; var serieData = serie.GetSerieData(dataIndex); var numericFormatter = GetItemNumericFormatter(tooltip, serie, serieData); switch (serie.radarType) { case RadarType.Multiple: sb.Append(serieData.name); for (int i = 0; i < radar.indicatorList.Count; i++) { string key = radar.indicatorList[i].name; float value = serieData.GetData(i); if ((i == 0 && !string.IsNullOrEmpty(serieData.name)) || i > 0) { sb.Append(PH_NN); } sb.AppendFormat("{0}: {1}", key, ChartCached.FloatToStr(value, numericFormatter)); } break; case RadarType.Single: string key2 = serieData.name; float value2 = serieData.GetData(1); if (string.IsNullOrEmpty(key2)) { key2 = radar.indicatorList[dataIndex].name; } sb.AppendFormat("{0}: {1}", key2, ChartCached.FloatToStr(value2, numericFormatter)); break; } }
protected override void Reset() { ChartHelper.DestoryAllChilds(transform); m_ThemeInfo = ThemeInfo.Default; m_Title = Title.defaultTitle; m_Legend = Legend.defaultLegend; m_Tooltip = Tooltip.defaultTooltip; m_Series = Series.defaultSeries; Awake(); }
public static void ResetLabel(SerieData serieData, SerieLabel label, ThemeInfo themeInfo, int colorIndex) { if (serieData.labelText) { serieData.labelText.color = label.color != Color.clear ? label.color : (Color)themeInfo.GetColor(colorIndex); serieData.labelText.fontSize = label.fontSize; serieData.labelText.fontStyle = label.fontStyle; } }
public static Color32 GetBackgroundColor(ThemeInfo themeInfo, Background background) { if (background.show && background.runtimeActive && background.hideThemeBackgroundColor) { return(ChartConst.clearColor32); } else { return(themeInfo.backgroundColor); } }
public static Color GetLabelColor(Serie serie, ThemeInfo themeInfo, int index) { if (!ChartHelper.IsClearColor(serie.label.color)) { return(serie.label.color); } else { return(themeInfo.GetColor(index)); } }
public static Color GetBackgroundColor(ThemeInfo themeInfo, Background background, bool m_IsControlledByLayout) { if (!m_IsControlledByLayout && background.show && background.hideThemeBackgroundColor) { return(Color.clear); } else { return(themeInfo.backgroundColor); } }
public static Color GetLabelColor(Serie serie, ThemeInfo themeInfo, int index) { if (serie.label.color != Color.clear) { return(serie.label.color); } else { return(themeInfo.GetColor(index)); } }
internal static Color GetColor(Vessel vessel, Serie serie, ThemeInfo themeInfo, List <string> legendRealShowName) { if (serie != null && vessel.autoColor) { var colorIndex = legendRealShowName.IndexOf(serie.name); return(SerieHelper.GetItemColor(serie, null, themeInfo, colorIndex, false)); } else { return(vessel.color); } }
public static Color GetContentColor(Legend legend, ThemeInfo themeInfo, bool active) { var textStyle = legend.textStyle; if (active) { return(textStyle.color != Color.clear ? textStyle.color : (Color)themeInfo.legendTextColor); } else { return((Color)themeInfo.legendUnableColor); } }
internal Color32 GetColor(ThemeInfo theme) { if (!ChartHelper.IsClearColor(lineStyle.color)) { return(lineStyle.GetColor()); } else { var color = theme.axisSplitLineColor; color.a *= (byte)(color.a * lineStyle.opacity); return(color); } }
protected override void Awake() { m_ThemeInfo = ThemeInfo.Default; rectTransform.anchorMax = Vector2.zero; rectTransform.anchorMin = Vector2.zero; rectTransform.pivot = Vector2.zero; m_CheckWidth = chartWidth; m_CheckHeight = chartHeight; m_CheckTheme = m_Theme; InitTitle(); InitLegend(); InitTooltip(); }
protected override void Awake() { if (m_ThemeInfo == null) { m_ThemeInfo = ThemeInfo.Default; } raycastTarget = false; m_CheckTheme = m_ThemeInfo.theme; UpdateSize(); InitComponent(); m_Series.AnimationReset(); m_Series.AnimationFadeIn(); XChartsMgr.Instance.AddChart(this); }
internal static Color GetItemToColor(Serie serie, SerieData serieData, ThemeInfo theme, int index, bool highlight) { var itemStyle = GetItemStyle(serie, serieData, highlight); if (highlight) { var itemStyleEmphasis = GetItemStyleEmphasis(serie, serieData); if (itemStyleEmphasis != null && itemStyleEmphasis.toColor != Color.clear) { var color = itemStyleEmphasis.toColor; color.a *= itemStyleEmphasis.opacity; return(color); } } if (itemStyle == null) { itemStyle = serieData.itemStyle; } if (itemStyle.toColor != Color.clear) { var color = itemStyle.toColor; if (highlight) { color *= color; } color.a *= itemStyle.opacity; return(color); } if (itemStyle.color != Color.clear) { var color = itemStyle.color; if (highlight) { color *= color; } color.a *= itemStyle.opacity; return(color); } else { var color = (Color)theme.GetColor(index); if (highlight) { color *= color; } color.a *= itemStyle.opacity; return(color); } }
IEnumerator ComponentVisualMap() { chart.title.subText = "VisualMap 视觉映射:可从全局上配置图表的颜色、字体等效果,支持默认主题切换"; chart.visualMap.enable = true; chart.visualMap.show = true; chart.visualMap.orient = Orient.Vertical; chart.visualMap.calculable = true; chart.visualMap.min = 0; chart.visualMap.max = 100; chart.visualMap.range[0] = 0; chart.visualMap.range[1] = 100; var colors = new List <string> { "#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf", "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026" }; chart.visualMap.inRange.Clear(); foreach (var str in colors) { chart.visualMap.inRange.Add(ThemeInfo.GetColor(str)); } chart.grid.left = 80; chart.grid.bottom = 100; chart.RefreshChart(); yield return(new WaitForSeconds(1f)); while (chart.visualMap.rangeMin < 40) { chart.visualMap.rangeMin += speed * Time.deltaTime; chart.RefreshChart(); yield return(null); } while (chart.visualMap.rangeMax > 60) { chart.visualMap.rangeMax -= speed * Time.deltaTime; chart.RefreshChart(); yield return(null); } while (chart.visualMap.rangeMin > 0 || chart.visualMap.rangeMax < 100) { chart.visualMap.rangeMin -= speed * Time.deltaTime; chart.visualMap.rangeMax += speed * Time.deltaTime; chart.RefreshChart(); yield return(null); } }
public static Color32 GetLineColor(Tooltip tooltip, ThemeInfo theme) { var lineStyle = tooltip.lineStyle; if (!ChartHelper.IsClearColor(lineStyle.color)) { return(lineStyle.GetColor()); } else { var color = theme.tooltipLineColor; ChartHelper.SetColorOpacity(ref color, lineStyle.opacity); return(color); } }
internal Color GetColor(ThemeInfo theme) { if (lineStyle.color != Color.clear) { var color = lineStyle.color; color.a *= lineStyle.opacity; return(color); } else { var color = (Color)theme.axisSplitLineColor; color.a *= lineStyle.opacity; return(color); } }
public static void ResetLabel(SerieData serieData, SerieLabel label, ThemeInfo themeInfo, int colorIndex) { if (serieData.labelObject == null) { return; } if (serieData.labelObject.label == null) { return; } serieData.labelObject.label.color = !ChartHelper.IsClearColor(label.color) ? label.color : (Color)themeInfo.GetColor(colorIndex); serieData.labelObject.label.fontSize = label.fontSize; serieData.labelObject.label.fontStyle = label.fontStyle; }