Значения масштабирования оси Zedgraph xC#

Место общения программистов C#
Ответить
Anonymous
 Значения масштабирования оси Zedgraph x

Сообщение Anonymous »

Я хотел бы увеличить значения, показанные в оси x графа, над которым я работаю, таким образом:

x-ось начинается в 0,125 , тогда показывает 0,250, 0,5, 1.0 , а затем цифры-1,5, 2, 3,4,5,6,8,12

< /p>

В настоящее время я имею это: < /p>

. src = "https://i.sstatic.net/v3twc.png" /> < /p>

для этого я имею (vb.net версия) < /p>

Код: Выделить всё

Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports ZedGraph

Namespace Grid
Partial Public Class graficaControl
Inherits Form
Public Sub New()
InitializeComponent()
DrawGraph()
End Sub

Private Function h(ByVal x As Double) As Double
If x = 0 Then
Return 1
End If

Return Math.Sin(x) / x
End Function

Private Function f(ByVal x As Double) As Double
If x = 0 Then
Return 1
End If

Return Math.Sin(x)
End Function

Private Function g(ByVal x As Double) As Double
If x = 1 Then
Return 0
End If

Return Math.Cos(x)
End Function

Private Sub DrawGraph()
Dim masterPane As ZedGraph.MasterPane = zedGraph.MasterPane
Dim pane As New GraphPane()
masterPane.PaneList.Clear()

pane.XAxis.Title.Text = "X"
pane.XAxis.Title.FontSpec.IsUnderline = False
pane.XAxis.Title.FontSpec.IsBold = True
pane.XAxis.Title.FontSpec.FontColor = Color.Blue
pane.YAxis.Title.Text = "Y"
pane.Title.Text = "Right - FF1"
pane.Title.FontSpec.Fill.IsVisible = True
pane.Title.FontSpec.IsBold = False

'X AXIS UP
pane.X2Axis.IsVisible = True
pane.XAxis.IsVisible = False
pane.YAxis.Scale.IsReverse = True

'Grid
pane.XAxis.MajorGrid.IsVisible = True
pane.XAxis.MajorGrid.DashOn = 10
pane.XAxis.MajorGrid.DashOff = 5
pane.YAxis.MajorGrid.IsVisible = True
pane.YAxis.MajorGrid.DashOn = 10
pane.YAxis.MajorGrid.DashOff = 5
pane.YAxis.MinorGrid.IsVisible = True
pane.YAxis.MinorGrid.DashOn = 1
pane.YAxis.MinorGrid.DashOff = 2
pane.XAxis.MinorGrid.IsVisible = True
pane.XAxis.MinorGrid.DashOn = 1
pane.XAxis.MinorGrid.DashOff = 2

'FOR TEXT
pane.Legend.Position = LegendPos.Float
pane.Legend.Location.CoordinateFrame = CoordType.ChartFraction
pane.Legend.Location.AlignH = AlignH.Right
pane.Legend.Location.AlignV = AlignV.Bottom
pane.Legend.Location.TopLeft = New PointF(1.0F - 0.02F, 1.0F - 0.02F)

iGraph(pane)

' Add to master
masterPane.Add(pane)

'later add second graph
Using g As Graphics = CreateGraphics()
masterPane.SetLayout(g, PaneLayout.SquareColPreferred)
End Using

zedGraph.AxisChange()
zedGraph.Invalidate()
End Sub

Private Sub iGraph(ByVal izq As GraphPane)
izq.CurveList.Clear()
Dim list As New PointPairList()
Dim xmin As Double = -50
Dim xmax As Double = 3
Dim x As Double = xmin
While x 

Также C# версия < /p>

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ZedGraph;

namespace Grid
{
public partial class graficaControl :  Form
{
public graficaControl()
{
InitializeComponent();
DrawGraph();
}

private double h(double x)
{
if (x == 0) {
return 1;
}

return Math.Sin(x) / x;
}

private double f(double x)
{
if (x == 0) {
return 1;
}

return Math.Sin(x);
}

private double g(double x)
{
if (x == 1) {
return 0;
}

return Math.Cos(x);
}

private void DrawGraph()
{
ZedGraph.MasterPane masterPane = zedGraph.MasterPane;
GraphPane pane = new GraphPane();
masterPane.PaneList.Clear();

pane.XAxis.Title.Text = "X";
pane.XAxis.Title.FontSpec.IsUnderline = false;
pane.XAxis.Title.FontSpec.IsBold = true;
pane.XAxis.Title.FontSpec.FontColor = Color.Blue;
pane.YAxis.Title.Text = "Y";
pane.Title.Text = "Right - FF1";
pane.Title.FontSpec.Fill.IsVisible = true;
pane.Title.FontSpec.IsBold = false;

//X AXIS UP
pane.X2Axis.IsVisible = true;
pane.XAxis.IsVisible = false;
pane.YAxis.Scale.IsReverse = true;

//Grid
pane.XAxis.MajorGrid.IsVisible = true;
pane.XAxis.MajorGrid.DashOn = 10;
pane.XAxis.MajorGrid.DashOff = 5;
pane.YAxis.MajorGrid.IsVisible = true;
pane.YAxis.MajorGrid.DashOn = 10;
pane.YAxis.MajorGrid.DashOff = 5;
pane.YAxis.MinorGrid.IsVisible = true;
pane.YAxis.MinorGrid.DashOn = 1;
pane.YAxis.MinorGrid.DashOff = 2;
pane.XAxis.MinorGrid.IsVisible = true;
pane.XAxis.MinorGrid.DashOn = 1;
pane.XAxis.MinorGrid.DashOff = 2;

//FOR TEXT
pane.Legend.Position = LegendPos.Float;
pane.Legend.Location.CoordinateFrame = CoordType.ChartFraction;
pane.Legend.Location.AlignH = AlignH.Right;
pane.Legend.Location.AlignV = AlignV.Bottom;
pane.Legend.Location.TopLeft = new PointF(1f - 0.02f, 1f - 0.02f);

iGraph(pane);

// Add to master
masterPane.Add(pane);

//later add second graph
using (Graphics g = CreateGraphics()) {
masterPane.SetLayout(g, PaneLayout.SquareColPreferred);
}

zedGraph.AxisChange();
zedGraph.Invalidate();
}

private void iGraph(GraphPane izq)
{
izq.CurveList.Clear();
PointPairList list = new PointPairList();
double xmin = -50;
double xmax = 3;
double x = xmin;
while (x 

 update < /h1>

Я сделал следующее, и оно почти решено < /p>

    'disable old axis scale
pane.X2Axis.Scale.IsVisible = False
pane.X2Axis.MajorTic.IsAllTics = False

' new labels
Dim x_vals = {0.125, 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 4.0, 6.0, 8.0, 12.0, 16.0}

' create custom labels and custom grid-lines using LineObj
For Each val As Double In x_vals

'add line
Dim line As New LineObj(pane.YAxis.Scale.Min, val, pane.YAxis.Scale.Max, val)
line.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash
line.Line.Width = 1.0F
pane.GraphObjList.Add(line)
'add label
Dim text As New TextObj(val.ToString(), pane.YAxis.Scale.Min, val)
text.Location.AlignH = AlignH.Right
text.FontSpec.Border.IsVisible = False
text.FontSpec.Fill.IsVisible = False
pane.GraphObjList.Add(text)
Next
получение:



Подробнее здесь: https://stackoverflow.com/questions/150 ... ing-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»