Verrouillez MSChart Quadrillage
Question
Comment dois-je faire ce qui suit avec un MSChart?
- Set axes de x: [0 - 1000] et y:. [0 - 1]
- Afficher les quadrillages quand carte n'a pas de points.
- Désactiver réglage automatique des quadrillages.
Note:. Réglage de l'axe (X / Y) (Min / Max) mum semble avoir aucun effet si un point existe à l'intérieur des limites
.La solution
Question 1) est très bien répondu par Bentley Davis, en réglant les valeurs min et max des axes X et Y.
Question 3) exige une plus propriété pour chaque axe; la propriété .Interval. Si vous ne définissez pas l'intervalle, le MSChart fera automatiquement un intervalle meilleur ajustement entre votre déclaration min et max, changeant ainsi potentiellement le positionnement des quadrillages et les étiquettes.
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
Question 2): Vous devez ajouter au moins 1 point de données à certaines séries pour afficher les quadrillages. Il n'y a pas moyen de contourner cela. J'ajoute la série suivante à mes graphiques quand je veux reproduire ce behavoir:
Dim nSer As Series = Chart1.Series.Add("fake_Series")
nSer.ChartType = SeriesChartType.Point
nSer.MarkerSize = 0
nSer.Points.Add(2000, 2)
Le point n'affiche pas sur le graphique, mais les quadrillages sont affichés.
Autres conseils
Je ne suis pas en mesure de recréer votre problème. Quand je tournerai les axes et les lignes de la grille affichent alors ajouter des points les lignes de la grille pour ne pas chnage. Vous semblez dire qu'ils changent. Voici le code que je utilise. Je pourrais être en mesure d'aider si je peux voir exemple de code.
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)