VB.NET图表上的边距较小

时间:2016-05-04 07:48:12

标签: vb.net charts

有没有办法自定义第一个条形图和Y轴之间的边距?

我知道有可能将IsMarginVisible设置为False:

.AxisX.IsMarginVisible = False

但我不想完全删除保证金,我只是想稍微调整一下。在此,我想调整“滴答”和标签文本之间的边距。这是一个例子:

以下是图表现在的样子

Old

它应该是什么样子(前面和后面的空格) New

你知道如何解决这个问题吗?

4 个答案:

答案 0 :(得分:2)

不幸的是,看起来没有我想要的保证金属性。但我今天偶然发现了这篇文章:http://support2.dundas.com/Default.aspx?article=869

我的解决方法是将MajorTickMark设置为我想要的刻度大小+边距。然后我将颜色设置为透明。

Chart1.ChartAreas(0).AxisY.MajorTickMark.Size = size
Chart1.ChartAreas(0).AxisY.MajorTickMark.LineColor = Color.FromArgb(0, 0, 0, 0)

之后,我只为我想要的大小和位置的每一行添加了一个Horizo​​ntalLineAnnotation。

Dim minValue As Double = Chart1.ChartAreas("ChartArea").AxisY.Minimum
Dim maxValue As Double = Chart1.ChartAreas("ChartArea").AxisY.Maximum
Dim iteration As Integer = CInt((Math.Abs(minValue) + Math.Abs(maxValue )) / interval)

For i As Integer = 0 To iteration
    Dim line As New HorizontalLineAnnotation()
    With line
        .AxisX = Chart1.ChartAreas("ChartArea").AxisX
        .AxisY = Chart1.ChartAreas("ChartArea").AxisY
        .AnchorX = 0
        .Y = i * interval - Math.Abs(minValue)
        .AnchorOffsetX = offset
        .Height = 0
        .LineWidth = 1
        .Width = (5 / Chart1.Width.Value * 1240)
        .LineColor = Color.FromArgb(128, 128, 128)
        End With
    Chart1.Annotations.Add(line)
Next

通过这种解决方法,我得到了我想要的结果。

答案 1 :(得分:0)

 With Chart1.Series(0)

        .BackGradientStyle = GradientStyle.TopBottom
        .Color = Color.Magenta
        .BackSecondaryColor = Color.Purple
        .IsValueShownAsLabel = True
        .Points.DataBind(dtTest.DefaultView, "Month", "Bought", Nothing)
        *****The pixel point width******.CustomProperties = "DrawingStyle = Cylinder ,PixelPointWidth = 26"
    End With

这是你在找什么?

答案 2 :(得分:0)

试试这个:

chart1.ChartAreas("默认")。AxisY.ScaleBreakStyle.Spacing = 2

答案 3 :(得分:0)

为什么不手动添加一些"空格"在每个Y值中,将它们转换为类似" 50,000"?

的字符串