首页 > 解决方案 > 如何将数据标签的位置移到雷达图之外?

问题描述

我想将雷达图的数据标签移到外面。

到目前为止,这些是我尝试移动标签的代码:

            rdrOpportunities.Series["Series1"]["RadarDrawingStyle"] = "Area";
            rdrOpportunities.Series["Series1"]["AreaDrawingStyle"] = "Circle";
            rdrOpportunities.Series["Series1"]["CircularLabelStyle"] = "Circular";
            rdrOpportunities.Series["Series1"].BorderWidth = 1;

            rdrOpportunities.ChartAreas[0].AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None;
            rdrOpportunities.ChartAreas[0].AxisY.IsLabelAutoFit = false;
            rdrOpportunities.ChartAreas[0].AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None;
            rdrOpportunities.ChartAreas[0].AxisX.IsLabelAutoFit = false;

请帮助:(提前谢谢你回答我的问题:)

这是我的雷达图

这是我想做的雷达图

这是网格线可见时的雷达图

标签: c#winformscharts

解决方案


直接的方法是设置一个适合SmartLabelStyle您的Series s

s.SmartLabelStyle.Enabled = true;
s.SmartLabelStyle.AllowOutsidePlotArea = LabelOutsidePlotAreaStyle.Yes;

但是,查看标签文本的大小是不行的,因为外面没有足够的空间。

InnerPlotPosition然后,您可以尝试减小 的大小ChartArea ca,如下所示:

ca.InnerPlotPosition = new ElementPosition(x, y, w, h);

数字在图表的百分比 (!!) 中。(0,0,100,100) 将填满整个图表,没有空间放置轴、标签、图例等。

根据细节,您将希望在各个方面留下一些空间。在所有方面留下 10% 将使用 (10, 10, 80, 80)。您可能必须使绘图区域比这小很多,可能是(60,60)或更小。这确实需要一些试验和错误。

请注意,虽然这会使标签更靠外,但它们基本上仍然在内部。


推荐阅读