在下面示例中的蓝色曲线上,第一个数据点 (74.2%) 显示在曲线下方,而其他 3 个数据点显示在曲线上方(85.9%、94.6%、104.7%)。
我最初认为标签会在该点离图表区域顶部太近时显示在该点下方。实际上,标签是打印在一个点的上方还是下方似乎是相当随意的(您会注意到第一个点也是 Y 轴上的“最低点”......)。
有没有办法强制标签始终打印在各自的点上方?
最佳答案
您没有发布任何重现代码,很难从屏幕截图中对代码进行逆向工程。当您遇到此类非常具体的问题时,切勿跳过此步骤。
猜测一下,您正在与“智能标签”功能作斗争。这在某种程度上不可避免地意味着它会有自己的想法,迟早不会做你希望它做的事情。您可以通过 Series.SmartLabelStyle 属性对其使用方式进行一些控制。首先肯定要尝试的是将其 Enabled property 设置为 false 以使其不再智能。下一个你可以修改的是它的 AllowOutsidePlotArea property 。
如果这些都没有让你在任何地方,那么考虑利用 Chart.PostPaint 事件并自己绘制这些标签。当然,让您完全控制放置它们的位置。
关于c# - .net 图表 - 如何强制数据标签始终显示在曲线上方?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21389018/