c# - 如何将数据标签的位置移到雷达图之外?
问题描述
我想将雷达图的数据标签移到外面。
到目前为止,这些是我尝试移动标签的代码:
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;
请帮助:(提前谢谢你回答我的问题:)
解决方案
直接的方法是设置一个适合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)或更小。这确实需要一些试验和错误。
请注意,虽然这会使标签更靠外,但它们基本上仍然在内部。
推荐阅读
- php - WooCommerce - 每个订单限制一个类别
- wso2 - 在 WSO2 中附加在 http_access_.log 中的日志
- visual-studio-code - 有没有办法增加vscode中命令面板的宽度
- c++ - 将任何对象传递给函数以创建此对象
- linux - 写入错误:在 BeagleBone Black 上使用 linux remoteproc 的参数无效
- c# - 构建通用表达式树 .NET Core
- python - 在运行 python 3.8 的机器上用于 python 3.7 的 distutils 和 pygame
- c# - 登录时获取特定列的值(C# Mysql)
- mysql - MySQL似乎在if语句更改列的值之前对行进行排序,我需要在值更改后对其进行排序
- c++11 - 关于 set_terminate 的使用问题