CPT散点图自定义轴标签重叠

时间:2014-01-24 13:18:45

标签: core-plot

我创建了一个CPTScatterPlot,定义了自定义Xaxislabels。

var axisSet = (CPTXYAxisSet) graph.AxisSet;

// Label x with a fixed interval policy
var x = axisSet.XAxis;
x.LabelingPolicy = CPTAxisLabelingPolicy.None;
x.MinorTicksPerInterval = 4;
x.PreferredNumberOfMajorTicks = 8;
x.MajorGridLineStyle = major;
x.MinorGridLineStyle = minor;
x.Title = "X Axis";
x.TitleOffset = -30;
x.LabelOffset = 15.0f;


NSMutableArray customLabels = new NSMutableArray (dataToPlot.Count);
foreach (PointF pt in dataToPlot) {
    string xlabel = pt.X.ToString ().PadLeft (6, '0');
    CPTTextStyle tstyle = new CPTTextStyle ();
    tstyle.Color = CPTColor.WhiteColor;
    tstyle.FontSize = 15;


    CPTAxisLabel newLabel = new CPTAxisLabel (xlabel, tstyle);
    newLabel.TickLocation = NSDecimalNumber.FromUInt32(uint.Parse(pt.X.ToString())).NSDecimalValue;
    newLabel.Offset = 3.0f;
    newLabel.Rotation = (float)Math.PI/2f;

    customLabels.Add (newLabel);
}
x.AxisLabels = new NSSet(customLabels);

此代码工作正常,但所有轴标签都重叠。如何删除重叠并仅显示可见范围内的特定标签?

如何在用户放大或缩小时重新加载xaxis。 请帮助,我很震惊。

由于 srrin

1 个答案:

答案 0 :(得分:1)

目前Core Plot中没有内置自动标签重叠删除功能。您需要根据标签的大小和数量自行完成。使用绘图空间代理监视绘图空间中的更改,并在绘图范围更改时根据需要更新刻度线位置和标签。