【发布时间】:2016-09-15 11:22:26
【问题描述】:
我正在尝试绘制一条正态分布曲线(作为 SeriesChartType.Spline),其中选定项目的位置位于该曲线上。我的 x 轴有点乱,所以我想整理一下,但我想不出办法在特定位置显示轴标签。
我想显示 {x(0), x(mean), 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
【问题讨论】: