绘图框外的 Coreplot 图例绘图

Posted

技术标签:

【中文标题】绘图框外的 Coreplot 图例绘图【英文标题】:Coreplot Legend drawing outside of plot frame 【发布时间】:2014-12-05 18:25:10 【问题描述】:

我有可以随窗口调整大小的 OS X 应用程序图表。我预计当宽度足够减小时,图例会被截断或剪裁。但是,它正在溢出到绘图区域之外,如下所示。理想情况下,我希望图例截断或至少剪辑内容。这是怎么做到的?

我的图例设置如下

- (void)configureLegend

    // 1 - Get graph instance
    CPTGraph *graph = self.graphHostingView.hostedGraph;
    // 2 - Create legend
    CPTLegend *theLegend;
    if (!theLegend) 
        theLegend = [CPTLegend legendWithGraph:graph];
    

    //Configure Text
    CPTMutableTextStyle *textStyle = [CPTMutableTextStyle textStyle];
    textStyle.color = [CPTColor colorWithComponentRed:0.612f green:0.612f blue:0.612f alpha:1.00f];
    textStyle.fontName = @"HelveticaNeue";
    textStyle.fontSize = 12.0f;
    theLegend.textStyle = textStyle;

    // 3 - Configure legend
    theLegend.numberOfColumns = 1;
    theLegend.fill = nil;
    theLegend.borderLineStyle = nil;
    theLegend.swatchSize = CGSizeMake(10.0, 10.0);
    theLegend.swatchCornerRadius = 5.0f;
    // 4 - Add legend to graph
    graph.legend = theLegend;
    graph.legendAnchor = CPTRectAnchorLeft;
    CGFloat viewWidth = self.graphHostingView.bounds.size.width;
    CGFloat legendPadding = (viewWidth * 0.3) + self.pieChart.pieRadius + (viewWidth * 0.05);
    graph.legendDisplacement = CGPointMake(legendPadding, 0.0);

【问题讨论】:

【参考方案1】:

确保图表掩盖了它的子层。使用masksToBounds 剪切到边框线的外侧或使用masksToBorder 剪切到边框的内侧边缘。

【讨论】:

以上是关于绘图框外的 Coreplot 图例绘图的主要内容,如果未能解决你的问题,请参考以下文章

r怎么把图例设置在绘图区外

在 R 中绘图:水平列出图例项并在绘图下方居中

绘图问题 - 图例条形比例、中断、图例、小数

绘图图例显示未知项目/相同的图例项目以不同的线条显示两次

为啥将图例添加到绘图时会出现错误?

seaborn中的图例重叠绘图区域[重复]