我正在尝试为我的数据绘制趋势线。反正有没有定义自定义函数?我见过的最接近的是这里的 Hello Windows Forms 示例:http : //www.oxyplot.org/doc/HelloWindowsForms.html
代码:
namespace WindowsFormsApplication1
{
using System;
using System.Windows.Forms;
using OxyPlot;
using OxyPlot.Series;
public partial class Form1 : Form
{
public Form1()
{
this.InitializeComponent();
var myModel = new PlotModel("Example 1");
myModel.Series.Add(new FunctionSeries(Math.Cos, 0, 10, 0.1, "cos(x)"));
this.plot1.Model = myModel;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在示例中,他们使用余弦。如果我需要定义一个自定义的多变量方程怎么办?
编辑:我找到了部分答案。
使用 Lambda 系列:
new FunctionSeries( x => a*x*x*x + b*x*x + c*x + d, .... )
Run Code Online (Sandbox Code Playgroud)
源代码:https : //oxyplot.codeplex.com/discussions/439064
仍然不知道如何做一个多变量方程。
我们有一个带正负值的简单ColumnChart.
虽然在0线,但图表上没有线.我们如何实现零线?
见附图

任何人都可以告诉我如何在Oxyplot中的行系列的数据点添加字符串值?
我有一个列表,它是一个键值对的字符串,double,并希望将其添加到数据点.
示例:字符串值为10-15,15-20,...
双值是10,20,30,......
我希望我的x轴刻度点显示为例如(10-15,15-20等)
以下是代码:
foreach (var points in list)
{
lineseriesobject.Points.Add(new OxyPlot.DataPoint(Convert.ToDouble(points.Key), Convert.ToDouble(points.Value)));
}
Run Code Online (Sandbox Code Playgroud) 有没有办法管理传奇中的项目?我的意思是eq从传奇中删除一些项目,但不是从整个情节中删除?我知道情节中的每个系列都与图例中的一个项目相关联,但我想打破这个规则,并将传说中只选择系列.
谢谢你的要求.
我一直在我的 Xamarin.ios 和 Xamarin.Android 项目中使用 OxyPlot 来绘制柱状图。这就是我使用 oxyplot 绘制柱状图的方式。
现在我需要一个堆积柱形图。我在文档中找不到它。oxyplot 有可能吗?如何?任何帮助表示赞赏..
public class MeasurementGraph
{
public PlotModel VitalModel { get; set; }
public VitalGraph graph { get; set; }
public MeasurementGraph (VitalGraph graph)
{
this.graph = graph;
var model = new PlotModel { Title = "" };
model.PlotAreaBorderColor = OxyColors.Transparent;
model.Axes.Add (GetXAxis ());
model.Axes.Add (GetYAxis ());
model.Series.Add (GetValueSeries ());
if (Math.Abs (graph.trendStart) > float.Epsilon && Math.Abs (graph.trendEnd) > float.Epsilon)
model.Series.Add (GetXtraSeries ());
VitalModel = model;
}
CategoryAxis GetXAxis ()
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试将图表导出到 PNG。那是我的代码:
图表.xaml
<Window x:Class="P1.Chart"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:oxy="http://oxyplot.org/wpf"
xmlns:local="clr-namespace:P1"
Title="Example 1 (WPF)" Height="800" Width="800"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<oxy:Plot>
<oxy:Plot.Axes>
<oxy:LinearAxis Position="Bottom" Minimum="-20" Maximum="20" />
<oxy:LinearAxis Position="Left" Minimum="-20" Maximum="20" />
</oxy:Plot.Axes>
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding Points1}" LineStyle="None" MarkerType="Circle" MarkerSize="3" MarkerFill="Red" Title="Point 1"/>
<oxy:LineSeries ItemsSource="{Binding Points2}" LineStyle="None" MarkerType="Circle" MarkerSize="3" MarkerFill="Green" Title="Point 2"/>
<oxy:LineSeries ItemsSource="{Binding Points3}" LineStyle="None" MarkerType="Circle" MarkerSize="3" MarkerFill="Blue" Title="Point 3"/>
</oxy:Plot.Series>
</oxy:Plot>
</Grid>
Run Code Online (Sandbox Code Playgroud)
图表.xaml.cs
namespace P1
{
public partial class Chart: Window
{
public IList<DataPoint> Points1 { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 我正在使用 OxyPlot.Xamarin.Android 来绘制不规则多边形(LineSeries),我还想在一条线附近添加它的长度。可以在图表中添加文本吗?我还希望放大或缩小像线条一样处理文本。谢谢。
我试图设置我的列系列中的条形宽度,但设置ColumnWidth没有ColumnSeries效果。如何影响列的宽度?
<oxy:Plot>
<oxy:Plot.Series>
<oxy:ColumnSeries ColumnWidth="1000" />
</oxy:Plot.Series>
<oxy:Plot.Axes>
<oxy:CategoryAxis Key="CategoryAxis" />
<oxy:LinearAxis />
</oxy:Plot.Axes>
</oxy:Plot>
Run Code Online (Sandbox Code Playgroud) 在 C# 中,有没有办法在方法的输入参数中使用“或者”?例如,我有 ScaleXmin 和 ScaleXmin_scatter 方法,它们都返回输入的 Points 属性。
public double ScaleXmin(LineSeries lineSeries)
{
return lineSeries.Points[0].X;
}
public double ScaleXmin_scatter(ScatterSeries scatterSeries)
{
return scatterSeries.Points[0].X;
}
Run Code Online (Sandbox Code Playgroud)
是否可以将其组合成一种接受 LineSeries 或 ScatterSeries 的方法?这样做的原因是因为我复制了许多方法来适应 LineSeries 和 ScatterSeries。
在谷歌搜索之后,我偶然发现了泛型,也许这就是这样做的方法。但是我被卡住了,因为它们都没有继承同一个类,并且让我认为它与泛型不兼容:
namespace OxyPlot.Series
{
public class ScatterSeries : ScatterSeries<ScatterPoint>
...
public class LineSeries : DataPointSeries
Run Code Online (Sandbox Code Playgroud)
编辑: 如果可能,这是我希望无错误运行的示例。现在我收到此错误:无法在 ScaleXMin(scatter) 处从“OxyPlot.Series.ScatterSeries”转换为“OxyPlot.Series.DataPointSeries”;
using OxyPlot.Series;
LineSeries line = new LineSeries();
ScatterSeries scatter = new ScatterSeries();
public double ScaleXMin(DataPointSeries series)
{
return series.Points[0].X;
}
public void Test()
{
double x = ScaleXMin(line); …Run Code Online (Sandbox Code Playgroud) 我一直想通过使用像ActualMinimum和这样的属性设置y轴的最小值和最大值 ActualMaximum,但是我甚至没有设置MinimumPadding和MaximumPadding,我也没有工作.我也尝试了轴的Zoom方法,它没有用.对不起,我无法上传图片...
有人可以在这方面指导我吗?很感谢任何形式的帮助.谢谢 !