Меньшая маржа на диаграмме VB.NET

Есть ли способ настроить границу между первой гистограммой и осью Y?

Я знаю, что есть возможность установить IsMarginVisible в False:

.AxisX.IsMarginVisible = False

Но я не хочу полностью удалить маржу, я просто хотел бы немного ее отрегулировать. В âddition я хотел бы настроить границу между "тиками" и текстом ярлыка. Вот пример:

Вот как выглядит диаграмма прямо сейчас

Старый

И как это должно выглядеть (пространство впереди и после "тиков" ) Создать

Есть ли у вас идея решить эту проблему?

Ответ 1

К сожалению, похоже, что свойство margin не существует так, как мне хотелось бы. Но сегодня я наткнулся на эту статью: 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)

После этого я просто добавил HorizontalLineAnnotation для каждой строки в размере и месте, которое я хотел.

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

С этим обходным решением я получил результат, который хотел.

Ответ 2

 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

Это то, что вы ищете?

Ответ 3

попробуйте следующее:

chart1.ChartAreas( "По умолчанию" ). AxisY.ScaleBreakStyle.Spacing = 2

Ответ 4

Почему бы вам не добавить вручную "пробелы" в каждое значение Y, преобразовывая их в строку типа "50 000"?