我试图绘制一个正态分布曲线(作为一个SeriesChartType.Spline),在该曲线上有一个选定的项目位置。我的x轴有点乱,所以我试图整理它,但我想不出在特定位置显示轴标签的方法。
我想显示在{x(0),x(平均),x(n)}处的值,以及所选项目的数据点在曲线上的x轴值。

我试过玩
.ChartAreas(0).AxisX.Interval 但我不一定有标准的间隔范围。
是否只有在指定的数据点才能显示x轴标签?
编辑
正如建议的那样,我为这个图表实现了几个自定义标签。他们不完全是我所说的直觉使用,但他们做了最后的工作。
'//create x-axis labels
mu = Math.Round(mu, 2, MidpointRounding.AwayFromZero)
bci = Math.Round(CDbl(bci), 2, MidpointRounding.AwayFromZero)
Dim muLabel = String.Format("{0}({1})", "µ", mu)
'//Fit axis
With .ChartAreas(0)
With .AxisX
.MajorGrid.LineWidth = 0
.MajorTickMark.Enabled = false
.Minimum = 0
With .CustomLabels
.Add(New CustomLabel(0, 0.4, 0, 0, LabelMarkStyle.LineSideMark)) '//origin label
.Add(New CustomLabel(mu-10, mu + 10, muLabel, 0, LabelMarkStyle.LineSideMark)) '//mean label)
.Add(New CustomLabel(bci-10, bci + 10, bci.ToString, 0, LabelMarkStyle.LineSideMark)) '//index label
End With
With .LabelStyle
.Format = "{0.00}"
.Font = New Font("Microsoft Sans Serif", 8)
End With
...我为标签选择的范围有点武断。我的数据分布不会立即发生很大的变化,所以我选择了一个字体看起来合理的范围,因此标签位于中间。现在看起来可读性要强得多:http://i.imgur.com/7buwdyk.png
发布于 2016-10-09 21:46:18
你可以选择
CustomLabels替换普通标签。他们是有点棘手,因为你不能设置他们的立场。相反,您需要两个位置(FromPosition和ToPosition)来声明CustomLabel应居中的范围。注意,一旦使用了CustomLabels ,就不会有普通的显示。TextAnnotations。可以将AnchorX设置为所需的值,并将Y位置设置为y-值的最小值。要正确处理这些问题也有点棘手,涉及到Annotation和IsSizeAlwaysRelative的轴,这应该是错误的。Pre-或PostPaint事件,以及使用ValueToPixelPosition轴函数获取坐标的文本Graphics.DrawString或TextRenderer.DrawText。这可能实际上是最容易做到的。https://stackoverflow.com/questions/39509845
复制相似问题