vb.net - VB.NET 图表上的边距较小

标签 vb.net charts

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

我知道可以将 IsMarginVisible 设置为 False:

.AxisX.IsMarginVisible = False

但我不想完全删除边距,我只是想稍微调整一下。另外,我想调整“刻度”和标签文本之间的边距。这是一个例子:

这是图表现在的样子

Old

它应该是什么样子(“刻度”前后有空格) New

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

最佳答案

不幸的是,看起来没有我想要的边距属性。但今天我偶然发现了这篇文章: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

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

关于vb.net - VB.NET 图表上的边距较小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37021574/

相关文章:

c# - 使用批处理文件或 .NET 代码更改 Web.config 中的值

.net - 在 datagridview 中禁用单元格突出显示

javascript - Chart.js "display:none"问题

javascript - nvd3折线图问题

javascript - 在D3中绘制不同半径的饼图(将力网络与饼图结合)

vb.net - vb.net 2010 中的键盘快捷键没有响应

vb.net - 如何在 Visual Basic 中创建多列列表框?

vb.net - 如何在 VB.NET 中创建 Nullable Optional Numeric (integer/double) 参数?

css - 如何制作动画、渐变填充的 SVG 圆环图

flutter - 是否可以使用charts_flutter绘制带有值流的实时图表?