我创建了一个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
答案 0 :(得分:1)
目前Core Plot中没有内置自动标签重叠删除功能。您需要根据标签的大小和数量自行完成。使用绘图空间代理监视绘图空间中的更改,并在绘图范围更改时根据需要更新刻度线位置和标签。