LineChart增加stepType实现`阶梯线图

This commit is contained in:
monitor1394
2019-06-01 08:11:43 +08:00
parent 474e2e5325
commit d19679be43
5 changed files with 6021 additions and 39 deletions

View File

@@ -174,15 +174,15 @@ namespace XCharts
}
m_Tooltip.UpdateContentText(sb.ToString());
}
if(m_XAxis.type == Axis.AxisType.Value)
if (m_XAxis.type == Axis.AxisType.Value)
{
float hig = (maxValue - minValue) * (m_Tooltip.pointerPos.x - zeroX) / coordinateWid;
m_Tooltip.UpdateLabelText(hig.ToString("f2"),tempAxis.GetData(index));
m_Tooltip.UpdateLabelText(hig.ToString("f2"), tempAxis.GetData(index));
float splitWidth = m_YAxis.GetSplitWidth(coordinateHig);
float py = zeroY + (m_Tooltip.dataIndex - 1) * splitWidth
+ (m_YAxis.boundaryGap ? splitWidth / 2 : 0);
Vector2 xLabelPos = new Vector2(m_Tooltip.pointerPos.x,coordinateY- 4 * m_Coordinate.tickness);
Vector2 yLabelPos = new Vector2(coordinateX - 6 * m_Coordinate.tickness,py);
Vector2 xLabelPos = new Vector2(m_Tooltip.pointerPos.x, coordinateY - 4 * m_Coordinate.tickness);
Vector2 yLabelPos = new Vector2(coordinateX - 6 * m_Coordinate.tickness, py);
m_Tooltip.UpdateLabelPos(xLabelPos, yLabelPos);
}
else
@@ -196,7 +196,7 @@ namespace XCharts
Vector2 yLabelPos = new Vector2(coordinateX - 4 * m_Coordinate.tickness, m_Tooltip.pointerPos.y);
m_Tooltip.UpdateLabelPos(xLabelPos, yLabelPos);
}
var pos = m_Tooltip.GetContentPos();
if (pos.x + m_Tooltip.width > chartWidth)

View File

@@ -5,13 +5,20 @@ namespace XCharts
[System.Serializable]
public class Line
{
public enum StepType
{
Start,
Middle,
End
}
[SerializeField] private float m_Tickness;
[SerializeField] private bool m_Point;
[SerializeField] private float m_PointWidth;
[SerializeField] private bool m_Smooth;
[SerializeField] [Range(1f, 10f)] private float m_SmoothStyle;
[SerializeField] private bool m_Area;
[SerializeField] private Color m_AreaColor;
[SerializeField] private bool m_Step;
[SerializeField] private StepType m_StepType;
public float tickness { get { return m_Tickness; } set { m_Tickness = value; } }
public bool point { get { return m_Point; } set { m_Point = value; } }
@@ -19,7 +26,8 @@ namespace XCharts
public bool smooth { get { return m_Smooth; } set { m_Smooth = value; } }
public float smoothStyle { get { return m_SmoothStyle; } set { m_SmoothStyle = value; } }
public bool area { get { return m_Area; } set { m_Area = value; } }
public Color areaColor { get { return m_AreaColor; } set { m_AreaColor = value; } }
public bool step { get { return m_Step; } set { m_Step = value; } }
public StepType stepTpe { get { return m_StepType; } set { m_StepType = value; } }
public static Line defaultLine
{
@@ -32,7 +40,9 @@ namespace XCharts
m_PointWidth = 2.5f,
m_Smooth = false,
m_SmoothStyle = 2f,
m_Area = false
m_Area = false,
m_Step = false,
m_StepType = StepType.Middle
};
return line;
}