我正在使用 wpf 工具包图表控件。使用面积系列绘制图表。我只想在 x 轴上显示自定义间隔标签。它们不适合任何系列或间隔。请看图片。如图所示,我只想在 x 轴上显示 1、9、13、20、26、35 个刻度。
关于如何实现这一点的任何想法都将不胜感激。
我正在使用 wpf 工具包图表控件。使用面积系列绘制图表。我只想在 x 轴上显示自定义间隔标签。它们不适合任何系列或间隔。请看图片。如图所示,我只想在 x 轴上显示 1、9、13、20、26、35 个刻度。
关于如何实现这一点的任何想法都将不胜感激。
最后通过反复试验,我找到了解决方案。我重写了 LinearAxis 类的 GetLabelValues 方法,并将有效刻度线列表传递给它。请参阅下面的代码。
public class EquiDistanceAxis : LinearAxis
{
List<int> validValues;
public List<int> ValidValues
{
get { return validValues; }
}
public EquiDistanceAxis()
: base()
{
throw new Exception("Not Implemented.");
}
public EquiDistanceAxis(List<int> input)
: base()
{
validValues = input;
}
protected override IEnumerable<IComparable> GetLabelValues(Size availableSize)
{
IEnumerable<IComparable> tickMarkEnumerator = base.GetLabelValues(availableSize);
var enumerator = tickMarkEnumerator.GetEnumerator();
while (enumerator.MoveNext())
{
int day = Convert.ToInt32(enumerator.Current);
if (validValues.Any(v => v == day))
yield return day;
}
}
}