Guten Tag Community
Ich weiss nicht, ob ich hier richtig bin. Ich arbeite mit ZedGraph und habe mir zwei Kurven aufzeichnen lassen.
Ist es irgendwie möglich, nur die rote AchsenScalierung der Y2Achse (rechts) umzudrehen? Statt eben wie hier von unten nach oben 200 bis auf 1800, sondern von oben nach unten. Die x-Achse und die linke y-Achse sind in der Scalierung einwandfrei.
Die rote Kurve würde dann auch von links unten nach rechts oben verlaufen.
[highlight=vbnet]
Private Sub ZedGraphics()
Dim myP As GraphPane = zgControl1.GraphPane
'Rahmen im Diagramm
myP.Border.Color = Color.Transparent
myP.Chart.Border.Color = Color.DarkBlue
' Set the titles and axis labels
myP.Title.IsVisible = False
'Weitere Titel
myP.XAxis.Title.Text = "Strecke (mm)"
myP.YAxis.Title.Text = "Alpha []"
myP.Y2Axis.Title.Text = "Volumen"
' Make up some data points based on the Sine function
Dim list As New PointPairList
Dim list2 As New PointPairList
Dim i As Integer, x As Double, y As Double, y2 As Double
' DatenBerechnung
For i = 0 To 35
x = ...
y = ...
y2 = y * ...
list.Add(x, y)
list2.Add(x, y2)
Next i
'Vorhande Graphen löschen
Try
Dim anz As Integer = myP.CurveList.Count
For i = 0 To anz - 1
myP.CurveList(i).Clear()
Next
myP.AxisChange()
zgControl1.Refresh()
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
'Blauer Graphen
Dim myCurve As LineItem
myCurve = myP.AddCurve("Alpha", list, Color.Blue, SymbolType.Diamond)
myCurve.Symbol.Fill = New Fill(Color.Pink)
'Roter Graphen
myCurve = myP.AddCurve("Beta", list2, Color.Red, SymbolType.Circle)
myCurve.Symbol.Fill = New Fill(Color.LightGreen)
'Legende
myP.Legend.FontSpec.FontColor = Color.DarkBlue
myP.Legend.Border.Color = Color.Transparent
' Assoziere mit Y2Achse
myCurve.IsY2Axis = True
'
myP.XAxis.MajorGrid.IsVisible = True
'
myP.YAxis.Scale.FontSpec.FontColor = Color.Blue
myP.YAxis.Scale.FontSpec.Family = "arial"
myP.YAxis.Scale.FontSpec.Size = 12
myP.YAxis.Scale.IsVisible = True
myP.YAxis.Title.FontSpec.FontColor = Color.Blue
' Achsenskalierung farblich
myP.YAxis.MajorTic.IsOpposite = False
myP.YAxis.MajorTic.Color = Color.DarkBlue
myP.YAxis.MinorTic.IsOpposite = False
myP.YAxis.MinorTic.Color = Color.DarkBlue
'
myP.YAxis.MajorGrid.IsZeroLine = True
myP.YAxis.Color = Color.DarkBlue
myP.YAxis.MajorGrid.Color = Color.DarkBlue
myP.YAxis.MajorGrid.PenWidth = 1
'
myP.YAxis.Scale.Align = AlignP.Inside
'
myP.YAxis.Scale.Min = ...
myP.YAxis.Scale.Max = ...
'
myP.Y2Axis.IsVisible = True
'
myP.Y2Axis.Scale.FontSpec.FontColor = Color.Red
myP.Y2Axis.Scale.FontSpec.Family = "arial"
myP.Y2Axis.Scale.FontSpec.Size = 12
myP.Y2Axis.Scale.IsVisible = True
myP.Y2Axis.Title.FontSpec.FontColor = Color.Red
'
myP.Y2Axis.MajorTic.IsOpposite = False
myP.Y2Axis.MajorTic.Color = Color.DarkBlue
myP.Y2Axis.MinorTic.IsOpposite = False
myP.Y2Axis.MinorTic.Color = Color.DarkBlue
'
myP.Y2Axis.MajorGrid.IsVisible = True
myP.Y2Axis.MajorGrid.Color = Color.DarkBlue
myP.Y2Axis.MajorGrid.IsZeroLine = True
myP.Y2Axis.MajorGrid.PenWidth = 1
'
myP.Y2Axis.Scale.Align = AlignP.Inside
'x-Achse
myP.XAxis.Scale.FontSpec.FontColor = Color.DarkBlue
myP.XAxis.Scale.FontSpec.Family = "arial"
myP.XAxis.Scale.FontSpec.Size = 12
myP.XAxis.Title.FontSpec.FontColor = Color.DarkBlue
myP.XAxis.MajorTic.Color = Color.DarkBlue
myP.XAxis.MinorTic.Color = Color.DarkBlue
'myP.Chart.Fill = New Fill(Color.White, Color.LightGray, 45.0F)
myP.Chart.Fill = New Fill(Color.White, Color.White, 45.0F)
Dim text As New TextObj("Zoom: left mouse & drag" & Chr(10) & "Pan: middle mouse & drag" & Chr(10) & "Context Menu: right mouse", 0.05F, 0.95F, CoordType.ChartFraction, AlignH.Left, AlignV.Bottom)
text.FontSpec.StringAlignment = StringAlignment.Near
text.FontSpec.FontColor = Color.DarkBlue
myP.GraphObjList.Add(text)
zgControl1.IsShowHScrollBar = True
zgControl1.IsShowVScrollBar = True
zgControl1.IsAutoScrollRange = True
zgControl1.IsScrollY2 = True
zgControl1.IsShowPointValues = True
With myP.YAxis
.Scale.MinAuto = True
.Scale.MaxAuto = True
.Scale.MajorStepAuto = True
.Scale.MinorStepAuto = True
.CrossAuto = True
.Scale.MagAuto = True
.Scale.FormatAuto = True
End With
With myP.Y2Axis
.Scale.MinAuto = True
.Scale.MaxAuto = True
.Scale.MajorStepAuto = True
.Scale.MinorStepAuto = True
.CrossAuto = True
.Scale.MagAuto = True
.Scale.FormatAuto = True
End With
With myP.XAxis
.Scale.MinAuto = True
.Scale.MaxAuto = True
.Scale.MajorStepAuto = True
.Scale.MinorStepAuto = True
.CrossAuto = True
.Scale.MagAuto = True
.Scale.FormatAuto = True
End With
zgControl1.AxisChange()
zgControl1.Invalidate()
myP.YAxis.Scale.IsUseTenPower = True
myP.Y2Axis.Scale.IsUseTenPower = True
End Sub
[/highlight]
Gruss und Danke für die Bemühungen
exc-jdbi
Ich weiss nicht, ob ich hier richtig bin. Ich arbeite mit ZedGraph und habe mir zwei Kurven aufzeichnen lassen.
Ist es irgendwie möglich, nur die rote AchsenScalierung der Y2Achse (rechts) umzudrehen? Statt eben wie hier von unten nach oben 200 bis auf 1800, sondern von oben nach unten. Die x-Achse und die linke y-Achse sind in der Scalierung einwandfrei.
Die rote Kurve würde dann auch von links unten nach rechts oben verlaufen.
[highlight=vbnet]
Private Sub ZedGraphics()
Dim myP As GraphPane = zgControl1.GraphPane
'Rahmen im Diagramm
myP.Border.Color = Color.Transparent
myP.Chart.Border.Color = Color.DarkBlue
' Set the titles and axis labels
myP.Title.IsVisible = False
'Weitere Titel
myP.XAxis.Title.Text = "Strecke (mm)"
myP.YAxis.Title.Text = "Alpha []"
myP.Y2Axis.Title.Text = "Volumen"
' Make up some data points based on the Sine function
Dim list As New PointPairList
Dim list2 As New PointPairList
Dim i As Integer, x As Double, y As Double, y2 As Double
' DatenBerechnung
For i = 0 To 35
x = ...
y = ...
y2 = y * ...
list.Add(x, y)
list2.Add(x, y2)
Next i
'Vorhande Graphen löschen
Try
Dim anz As Integer = myP.CurveList.Count
For i = 0 To anz - 1
myP.CurveList(i).Clear()
Next
myP.AxisChange()
zgControl1.Refresh()
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
'Blauer Graphen
Dim myCurve As LineItem
myCurve = myP.AddCurve("Alpha", list, Color.Blue, SymbolType.Diamond)
myCurve.Symbol.Fill = New Fill(Color.Pink)
'Roter Graphen
myCurve = myP.AddCurve("Beta", list2, Color.Red, SymbolType.Circle)
myCurve.Symbol.Fill = New Fill(Color.LightGreen)
'Legende
myP.Legend.FontSpec.FontColor = Color.DarkBlue
myP.Legend.Border.Color = Color.Transparent
' Assoziere mit Y2Achse
myCurve.IsY2Axis = True
'
myP.XAxis.MajorGrid.IsVisible = True
'
myP.YAxis.Scale.FontSpec.FontColor = Color.Blue
myP.YAxis.Scale.FontSpec.Family = "arial"
myP.YAxis.Scale.FontSpec.Size = 12
myP.YAxis.Scale.IsVisible = True
myP.YAxis.Title.FontSpec.FontColor = Color.Blue
' Achsenskalierung farblich
myP.YAxis.MajorTic.IsOpposite = False
myP.YAxis.MajorTic.Color = Color.DarkBlue
myP.YAxis.MinorTic.IsOpposite = False
myP.YAxis.MinorTic.Color = Color.DarkBlue
'
myP.YAxis.MajorGrid.IsZeroLine = True
myP.YAxis.Color = Color.DarkBlue
myP.YAxis.MajorGrid.Color = Color.DarkBlue
myP.YAxis.MajorGrid.PenWidth = 1
'
myP.YAxis.Scale.Align = AlignP.Inside
'
myP.YAxis.Scale.Min = ...
myP.YAxis.Scale.Max = ...
'
myP.Y2Axis.IsVisible = True
'
myP.Y2Axis.Scale.FontSpec.FontColor = Color.Red
myP.Y2Axis.Scale.FontSpec.Family = "arial"
myP.Y2Axis.Scale.FontSpec.Size = 12
myP.Y2Axis.Scale.IsVisible = True
myP.Y2Axis.Title.FontSpec.FontColor = Color.Red
'
myP.Y2Axis.MajorTic.IsOpposite = False
myP.Y2Axis.MajorTic.Color = Color.DarkBlue
myP.Y2Axis.MinorTic.IsOpposite = False
myP.Y2Axis.MinorTic.Color = Color.DarkBlue
'
myP.Y2Axis.MajorGrid.IsVisible = True
myP.Y2Axis.MajorGrid.Color = Color.DarkBlue
myP.Y2Axis.MajorGrid.IsZeroLine = True
myP.Y2Axis.MajorGrid.PenWidth = 1
'
myP.Y2Axis.Scale.Align = AlignP.Inside
'x-Achse
myP.XAxis.Scale.FontSpec.FontColor = Color.DarkBlue
myP.XAxis.Scale.FontSpec.Family = "arial"
myP.XAxis.Scale.FontSpec.Size = 12
myP.XAxis.Title.FontSpec.FontColor = Color.DarkBlue
myP.XAxis.MajorTic.Color = Color.DarkBlue
myP.XAxis.MinorTic.Color = Color.DarkBlue
'myP.Chart.Fill = New Fill(Color.White, Color.LightGray, 45.0F)
myP.Chart.Fill = New Fill(Color.White, Color.White, 45.0F)
Dim text As New TextObj("Zoom: left mouse & drag" & Chr(10) & "Pan: middle mouse & drag" & Chr(10) & "Context Menu: right mouse", 0.05F, 0.95F, CoordType.ChartFraction, AlignH.Left, AlignV.Bottom)
text.FontSpec.StringAlignment = StringAlignment.Near
text.FontSpec.FontColor = Color.DarkBlue
myP.GraphObjList.Add(text)
zgControl1.IsShowHScrollBar = True
zgControl1.IsShowVScrollBar = True
zgControl1.IsAutoScrollRange = True
zgControl1.IsScrollY2 = True
zgControl1.IsShowPointValues = True
With myP.YAxis
.Scale.MinAuto = True
.Scale.MaxAuto = True
.Scale.MajorStepAuto = True
.Scale.MinorStepAuto = True
.CrossAuto = True
.Scale.MagAuto = True
.Scale.FormatAuto = True
End With
With myP.Y2Axis
.Scale.MinAuto = True
.Scale.MaxAuto = True
.Scale.MajorStepAuto = True
.Scale.MinorStepAuto = True
.CrossAuto = True
.Scale.MagAuto = True
.Scale.FormatAuto = True
End With
With myP.XAxis
.Scale.MinAuto = True
.Scale.MaxAuto = True
.Scale.MajorStepAuto = True
.Scale.MinorStepAuto = True
.CrossAuto = True
.Scale.MagAuto = True
.Scale.FormatAuto = True
End With
zgControl1.AxisChange()
zgControl1.Invalidate()
myP.YAxis.Scale.IsUseTenPower = True
myP.Y2Axis.Scale.IsUseTenPower = True
End Sub
[/highlight]
Gruss und Danke für die Bemühungen
exc-jdbi
Comment