Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在OxyPlot中显示x轴和y轴_C#_Wpf_Coordinates_Coordinate Systems_Oxyplot - Fatal编程技术网

C# 在OxyPlot中显示x轴和y轴

C# 在OxyPlot中显示x轴和y轴,c#,wpf,coordinates,coordinate-systems,oxyplot,C#,Wpf,Coordinates,Coordinate Systems,Oxyplot,在图片中,你会看到两个黄色和两个红色。更亮的颜色是用代码创建的线条。较深的颜色已经用油漆涂过了。我想展示一下中间的疼痛。我已经这样做了,但没有我想的那么多。在图片中,你可以看到轴没有完全到边缘。所以我用油漆来扩展它。所以它应该在以后再看。我想问的是,这个值的范围到底有多大。(结束是指在创建矩形之后)。我认为这不是创建中轴线的最佳方式。我认为这样更好,但不知道怎么做。 我如何才能使我的笔划一直到边缘,或者有可能与 例如plotModel.PlotType=showmidleaxis?如果我不将其保

在图片中,你会看到两个黄色和两个红色。更亮的颜色是用代码创建的线条。较深的颜色已经用油漆涂过了。我想展示一下中间的疼痛。我已经这样做了,但没有我想的那么多。在图片中,你可以看到轴没有完全到边缘。所以我用油漆来扩展它。所以它应该在以后再看。我想问的是,这个值的范围到底有多大。(结束是指在创建矩形之后)。我认为这不是创建中轴线的最佳方式。我认为这样更好,但不知道怎么做。 我如何才能使我的笔划一直到边缘,或者有可能与 例如
plotModel.PlotType=showmidleaxis
?如果我不将其保存为图像,Oxyplot,而是交互式Oxyplot,则轴也应为“go”


编辑:

如果我通过代码添加中间轴,那么OxyPlot(可以看到整个中间轴)。事实不应如此。它应该只缩放矩形和点


我希望你能帮助我,谢谢

与往常一样,代码现在正在等待您:

Rootobject.cs


MainWindow.xaml.cs

使用系统;
使用System.Collections.Generic;
使用System.Windows;
使用氧图;
名称空间Rechteck
{
/// 
///Interaktionslogik für MainWindow.xaml
/// 
公共部分类主窗口:窗口,IPreviewCreator
{
公共主窗口()
{
初始化组件();
m_b轴=真;
m_bWithFrame=真;
m_bWithGrid=真;
m_b中心轴=真;
尝试
{
PlotModel-PlotModel;
if(带框架)
{
plotModel=新的plotModel{};
}
其他的
{
plotModel=new plotModel{PlotAreaBorderColor=OxyColor.Transparent};
}
plotModel.PlotType=PlotType.Cartesian;
如果(带轴)
{
如果(带网格)
{
plotModel.Axis.Add(新的OxyPlot.Axis.LinearAxis{Position=OxyPlot.Axis.AxisPosition.Bottom,MinimumPadding=0.1,MaximumPadding=0.1,MajorGridlineStyle=LineStyle.Solid,MinorGridlineStyle=LineStyle.Dot});
plotModel.Axis.Add(新建OxyPlot.Axis.LinearAxis{Position=OxyPlot.Axis.AxisPosition.Left,MinimumPadding=0.1,MaximumPadding=0.1,MajorGridlineStyle=LineStyle.Solid,MinorGridlineStyle=LineStyle.Dot});
}
其他的
{
plotModel.Axis.Add(新的OxyPlot.Axis.LinearAxis{Position=OxyPlot.Axis.AxisPosition.Bottom,MinimumPadding=0.1,MaximumPadding=0.1});
plotModel.Axis.Add(新的OxyPlot.Axis.LinearAxis{Position=OxyPlot.Axis.AxisPosition.Left,MinimumPadding=0.1,MaximumPadding=0.1});
}
}
其他的
{
如果(带网格)
{
plotModel.Axes.Add(新建OxyPlot.Axes.LinearAxis{Position=OxyPlot.Axes.AxisPosition.Bottom,MinorTickSize=0,TickStyle=OxyPlot.Axes.TickStyle.None,TextColor=OxyColor.Transparent,MinimumPadding=0.1,MaximumPadding=0.1,MajorGridlineStyle=LineStyle.Solid,MinorGridlineStyle=LineStyle;
plotModel.Axes.Add(新建OxyPlot.Axes.LinearAxis{Position=OxyPlot.Axes.AxisPosition.Left,MinorTickSize=0,TickStyle=OxyPlot.Axes.TickStyle.None,TextColor=OxyColor.Transparent,MinimumPadding=0.1,MaximumPadding=0.1,MajorGridlineStyle=LineStyle.Solid,MinorGridlineStyle=LineStyle;
}
其他的
{
plotModel.Axis.Add(新建OxyPlot.Axis.LinearAxis{Position=OxyPlot.Axis.AxisPosition.Bottom,MinorTickSize=0,TickStyle=OxyPlot.Axis.TickStyle.None,TextColor=OxyColor.Transparent,MinimumPadding=0.1,MaximumPadding=0.1});
plotModel.Axis.Add(新建OxyPlot.Axis.LinearAxis{Position=OxyPlot.Axis.AxisPosition.Left,MinorTickSize=0,TickStyle=OxyPlot.Axis.TickStyle.None,TextColor=OxyColor.Transparent,MinimumPadding=0.1,MaximumPadding=0.1});
}
}
var series2=新的OxyPlot.Series.LineSeries
{
LineStyle=LineStyle.None,
MarkerType=MarkerType.Circle,
MarkerSize=5,
MarkerFill=OxyColors.透明,
MarkerStroke=OxyColor.黑色,
MarkerStrokeThickness=1,
};
系列2.点。添加(新数据点(8.0,1.0));
系列2.点。添加(新数据点(4.0,8.0));
系列2.点。添加(新数据点(8.0,4.0));
系列2.点。添加(新数据点(1.0,8.0));
系列2.点。添加(新数据点(10.0,1.0));
序列2.平滑=真;
plotModel.Series.Add(series2);
对于(int i=0;i<3;i++)
{
var series1=新的OxyPlot.Series.LineSeries
{
LineStyle=LineStyle.Solid,
MarkerType=MarkerType.Circle,
MarkerSize=1,
MarkerFill=OxyColors.透明,
MarkerStroke=OxyColor.黑色,
MarkerStrokeThickness=1,
};
开关(一)
{
案例0:
series1.Points.Add(新数据点(1.0,1.0));
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Rechteck
{
    internal class Rootobject
    {
        public Point[] Points { get; set; }
        public Rectangle[] Rectangles { get; set; }
    }

    internal class Point
    {
        public double X { get; set; }
        public double Y { get; set; }
    }

    internal class Rectangle
    {
        public double XMin { get; set; }
        public double XMax { get; set; }
        public double YMin { get; set; }
        public double YMax { get; set; }
    }

}
using System;
using System.Collections.Generic;
using System.Windows;
using OxyPlot;

namespace Rechteck
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window, IPreviewCreator
    {
        public MainWindow()
        {
            InitializeComponent();

            m_bWithAxis = true;
            m_bWithFrame = true;
            m_bWithGrid = true;
            m_bWithCenterAxis = true;
            try
            {
                PlotModel plotModel;
                if (withFrame)
                {
                    plotModel = new PlotModel { };
                }
                else
                {
                    plotModel = new PlotModel { PlotAreaBorderColor = OxyColors.Transparent };
                }

                plotModel.PlotType = PlotType.Cartesian;

                if (withAxis)
                {
                    if (withGrid)
                    {
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Bottom, MinimumPadding = 0.1, MaximumPadding = 0.1, MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot });
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Left, MinimumPadding = 0.1, MaximumPadding = 0.1, MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot });
                    }
                    else
                    {
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Bottom, MinimumPadding = 0.1, MaximumPadding = 0.1 });
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Left, MinimumPadding = 0.1, MaximumPadding = 0.1 });
                    }
                }
                else
                {
                    if (withGrid)
                    {
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Bottom, MinorTickSize = 0, TickStyle = OxyPlot.Axes.TickStyle.None, TextColor = OxyColors.Transparent, MinimumPadding = 0.1, MaximumPadding = 0.1, MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot });
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Left, MinorTickSize = 0, TickStyle = OxyPlot.Axes.TickStyle.None, TextColor = OxyColors.Transparent, MinimumPadding = 0.1, MaximumPadding = 0.1, MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot });
                    }
                    else
                    {
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Bottom, MinorTickSize = 0, TickStyle = OxyPlot.Axes.TickStyle.None, TextColor = OxyColors.Transparent, MinimumPadding = 0.1, MaximumPadding = 0.1 });
                        plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Left, MinorTickSize = 0, TickStyle = OxyPlot.Axes.TickStyle.None, TextColor = OxyColors.Transparent, MinimumPadding = 0.1, MaximumPadding = 0.1 });
                    }
                }

                    var series2 = new OxyPlot.Series.LineSeries
                    {
                        LineStyle = LineStyle.None,
                        MarkerType = MarkerType.Circle,
                        MarkerSize = 5,
                        MarkerFill = OxyColors.Transparent,
                        MarkerStroke = OxyColors.Black,
                        MarkerStrokeThickness = 1,
                    };

                    series2.Points.Add(new DataPoint(8.0, 1.0));
                    series2.Points.Add(new DataPoint(4.0, 8.0));
                    series2.Points.Add(new DataPoint(8.0, 4.0));
                    series2.Points.Add(new DataPoint(1.0, 8.0));
                    series2.Points.Add(new DataPoint(10.0, 1.0));

                    series2.Smooth = true;
                    plotModel.Series.Add(series2);

                for (int i = 0; i < 3; i++)
                {
                    var series1 = new OxyPlot.Series.LineSeries
                    {
                        LineStyle = LineStyle.Solid,
                        MarkerType = MarkerType.Circle,
                        MarkerSize = 1,
                        MarkerFill = OxyColors.Transparent,
                        MarkerStroke = OxyColors.Black,
                        MarkerStrokeThickness = 1,
                    };

                    switch (i)
                    {

                        case 0:
                            series1.Points.Add(new DataPoint(1.0, 1.0));
                            series1.Points.Add(new DataPoint(4.0, 1.0));
                            series1.Points.Add(new DataPoint(4.0, 4.0));
                            series1.Points.Add(new DataPoint(1.0, 4.0));
                            series1.Points.Add(new DataPoint(1.0, 1.0));
                            break;
                        case 2:
                            series1.Points.Add(new DataPoint(3.0, 3.0));
                            series1.Points.Add(new DataPoint(12.0, 3.0));
                            series1.Points.Add(new DataPoint(12.0, 12.0));
                            series1.Points.Add(new DataPoint(3.0, 12.0));
                            series1.Points.Add(new DataPoint(3.0, 3.0));
                            break;
                    }

                    series1.Smooth = false;
                    plotModel.Series.Add(series1);

                    for (int s = 0; s < 2; s++)
                    {
                        if (s == 0)
                        {
                            var series3 = new OxyPlot.Series.LineSeries
                            {
                                LineStyle = LineStyle.Solid,
                                MarkerType = MarkerType.Circle,
                                MarkerSize = 1,
                                Color = OxyColors.Yellow,
                                MarkerFill = OxyColors.Transparent,
                                MarkerStroke = OxyColors.Black,
                                MarkerStrokeThickness = 1,
                            };
                            series3.Points.Add(new DataPoint(0, -10));
                            series3.Points.Add(new DataPoint(0, +10));
                            series3.Smooth = false;
                            plotModel.Series.Add(series3);
                        }
                        else
                        {
                            var series4 = new OxyPlot.Series.LineSeries
                            {
                                LineStyle = LineStyle.Solid,
                                MarkerType = MarkerType.Circle,
                                MarkerSize = 1,
                                Color = OxyColors.Red,
                                MarkerFill = OxyColors.Transparent,
                                MarkerStroke = OxyColors.Black,
                                MarkerStrokeThickness = 1,
                            };
                            series4.Points.Add(new DataPoint(-10, 0));
                            series4.Points.Add(new DataPoint(+10, 0));
                            series4.Smooth = false;
                            plotModel.Series.Add(series4);
                        }
                    }
                }
                try
                    {
                        this.Content = new OxyPlot.Wpf.PlotView { Model = plotModel, Width = 800, Height = 800 };
                    }
                    catch (Exception)
                    {

                    }
            }
            catch (Exception)
            {
            }

        }


        private List<double> pointX = new List<double>();
        private List<double> pointY = new List<double>();
        private bool m_bWithAxis;
        private bool m_bWithFrame;
        private bool m_bWithGrid;
        private bool m_bWithCenterAxis;
        public int m_iMargin;

        public bool withAxis
        {
            get { return m_bWithAxis; }
            set { m_bWithAxis = value; }
        }

        public bool withFrame
        {
            get { return m_bWithFrame; }
            set { m_bWithFrame = value; }
        }

        public bool withGrid
        {
            get { return m_bWithGrid; }
            set { m_bWithGrid = value; }
        }

        public bool withCenterAxis
        {
            get { return m_bWithCenterAxis; }
            set { m_bWithCenterAxis = value; }

        }

        public int margin
        {
            get { return m_iMargin; }
            set { m_iMargin = value; }
        }

        public bool actualizePreview(out string errorMessage)
        {
            throw new NotImplementedException();
        }

        public void addPoint(double pX, double pY)
        {
            throw new NotImplementedException();
        }

        public void addRectangle(double pXmin, double pXMax, double pYMin, double pYMax)
        {
            throw new NotImplementedException();
        }

        public void clear()
        {
            throw new NotImplementedException();
        }

        public bool readJSONFile(out string errorMessage, string filename)
        {
            throw new NotImplementedException();
        }

        public bool savePicture(out string errorMessage, out System.Drawing.Image preview, int pWidth, int pHeight)
        {
            throw new NotImplementedException();
        }

    }
}
<Window x:Class="Rechteck.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Rechteck"
        mc:Ignorable="d"
        Title="MainWindow" Height="900" Width="900">
    <Grid>

    </Grid>
</Window>
plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Bottom, ExtraGridlines = new double[] { 0 }, ExtraGridlineThickness = 1, ExtraGridlineColor = OxyColors.Blue, });

plotModel.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = OxyPlot.Axes.AxisPosition.Left, ExtraGridlines = new double[] { 0 }, ExtraGridlineThickness = 1, ExtraGridlineColor = OxyColors.Red, });