Блокировка MSChart Gridlines - PullRequest
       17

Блокировка MSChart Gridlines

2 голосов
/ 18 февраля 2010

Как мне сделать следующее с MSChart?

  1. Установить оси на x: [0 - 1000] и y: [0 - 1].
  2. Показать линии сеткикогда на графике нет точек.
  3. Отключите автоматическую настройку линий сетки.

Примечание: установка оси (X / Y). (Мин. / Макс.) imum, кажется, не оказывает влияния, еслиточка существует внутри границ.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2010

Вопрос 1) приятно ответил Бентли Дэвис, установив минимальное и максимальное значения осей X и Y.

Вопрос 3) требуется еще одно свойство для каждой оси; свойство .Interval. Если вы не установите Интервал, MSChart автоматически сделает интервал наилучшего соответствия между вашими заявленными минимальными и максимальными значениями, что потенциально изменит положение линий сетки и меток.

  Chart1.Legends.Clear()

  Chart1.Series("Series1").ChartType = SeriesChartType.FastLine
  With Chart1.ChartAreas(0)
     .AxisX.Maximum = 1000
     .AxisX.Minimum = 0
     .AxisY.Maximum = 1
     .AxisY.Minimum = 0
     .AxisX.Interval = 200
  End With
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Chart1.Series("Series1").Points.AddXY(100, 0.5)

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      Chart1.Series("Series1").Points.AddXY(200, 0.6)

   End Sub

Вопрос 2): Вы должны добавить хотя бы одну точку данных в некоторые серии, чтобы отобразить линии сетки. Обойти это невозможно. Я добавляю следующие серии в свои графики, когда хочу дублировать это поведение:

  Dim nSer As Series = Chart1.Series.Add("fake_Series")
  nSer.ChartType = SeriesChartType.Point
  nSer.MarkerSize = 0
  nSer.Points.Add(2000, 2)

Точка не отображается на графике, но отображаются линии сетки.

1 голос
/ 23 февраля 2010

Я не могу воссоздать вашу проблему.Когда я устанавливаю оси и линии сетки отображаются, я добавляю точки линий сетки, чтобы они не изменялисьВы, кажется, говорите, что они меняются.Вот код, который я использую.Я мог бы помочь, если увижу пример кода.

    Chart1.Series("Series1").ChartType = SeriesChartType.FastLine
    Chart1.ChartAreas(0).AxisX.Maximum = 1000
    Chart1.ChartAreas(0).AxisX.Minimum = 0
    Chart1.ChartAreas(0).AxisY.Maximum = 1
    Chart1.ChartAreas(0).AxisY.Minimum = 0
    Chart1.Series("Series1").Points.AddXY(100, 0.5)
    Chart1.Series("Series1").Points.AddXY(200, 0.6)
...