我有一个WPF应用程序,我在其中使用OxyPlot进行制图.我不断向图表中的lineseries添加积分.X轴是DateTime轴,其间隔类型设置为秒.点数连续添加到线系列中.当第一个点和最后一个点之间的时间跨度是特定的秒数时,我删除第一个点并使图无效.这使得X轴滚动.我注意到Interval不是常规的.间隔有时会改变.请参阅以下图像:

这是图表开始绘图时的间隔.
一段时间后,间隔是这样的:

如何使间隔固定,如第一张图像中所示?
我正在寻找氧气图已经实现的所有快捷方式功能的列表!
像A ==重置Ctrl +鼠标左键......等.
我试图将轴旁边的值的格式从例如1000更改为1k或1000000到1M.
这在LinearAxis中是否可行?
这是我的代码:
m.Axes.Add(new LinearAxis
{
Position = AxisPosition.Right,
IsZoomEnabled = false,
IsPanEnabled = false,
Minimum = -(_maxPointValue2*0.1),
Maximum = _maxPointValue2 + (_maxPointValue2*0.1),
FontSize = 15,
Key = "right",
TickStyle = TickStyle.Outside,
});
Run Code Online (Sandbox Code Playgroud)
这可能与StringFormat一起使用吗?
也可以更改TickStyle,以便破折号通过整个情节?
提前致谢
迈克尔
我正在开发一个需要图表的 WPF 应用程序。我正在使用OxyPlot。我的图表使用以下 XAML 正确呈现。
<oxy:Plot Height="800" HorizontalContentAlignment="Stretch">
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding Series1Points}" MarkerType="Diamond" Title="Series 1" />
<oxy:LineSeries ItemsSource="{Binding Series2Points}" MarkerType="Diamond" Title="Series 2" />
</oxy:Plot.Series>
</oxy:Plot>
Run Code Online (Sandbox Code Playgroud)
我有一个尚未成功解决的挑战。当渲染系列时,每个数据点显示为菱形。当用户将鼠标放在钻石上时,我想显示一个带有数据点的 X 和 Y 值的工具提示。你怎么能这么做呢?看起来应该是可以的。然而,我没有取得任何成功。
在 XAMARIN iOS Oxyplot 中,我想构建一些图表来显示电池趋势。大约有 2000 个数据点。添加时,oxyplot 尝试将它们全部添加到可见区域中。然而,我希望它平移和下降。
代码如下
plotModel.Axes.Add (new LinearAxis {
Position = AxisPosition.Left,
MajorGridlineStyle = LineStyle.Dot,
Minimum = -2,
Maximum = 8,
AbsoluteMinimum = -2,
AbsoluteMaximum = 8,
MinorStep = 10,
MajorStep = 2
});
DateTimeAxis dtx = new DateTimeAxis {
Position = AxisPosition.Bottom,
MajorGridlineStyle = LineStyle.Dot,
AbsoluteMinimum = DateTimeAxis.ToDouble (batteryGraph.Min (v => v.LogTimeStamp)) - (0.5d / 60),
MajorStep = 5d,
StringFormat = "MM-dd-yy",
AbsoluteMaximum = DateTimeAxis.ToDouble (batteryGraph.Max (v => v.LogTimeStamp)) + (0.5d / 6),
Minimum = …Run Code Online (Sandbox Code Playgroud) 我使用了AreaSeries在图表上显示彩色区域.
彩色区域呈现在网格线的顶部.有没有办法将网格线带到前面?
此图在WPF项目的XAML中定义.这是配置:
<oxy:Plot Grid.Row="1"
Margin="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
PlotType="XY"
TitleFontSize="11"
IsLegendVisible="False"
Title="{Binding Channel.Name}"
InvalidateFlag="{Binding Refresh}">
<oxy:Plot.Axes>
<oxy:LinearAxis Key="yAxis"
IsZoomEnabled="False"
IsPanEnabled="False"
Position="Left"
MajorGridlineStyle="Dot"
MajorGridlineColor="LightGray"
Title="Speed [m/s]"
Maximum="{Binding SpeedXDistance_MaxY}"/>
<oxy:LinearAxis Key="xAxis"
IsZoomEnabled="False"
IsPanEnabled="False"
Position="Bottom"
MajorGridlineStyle="Dot"
MajorGridlineColor="LightGray"
Title="Distance [m]"
Maximum="{Binding SpeedXDistance_MaxX}"/>
</oxy:Plot.Axes>
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding SpeedXDistancePoints}"
DataFieldX="X"
DataFieldY="Y"
StrokeThickness="1"
MarkerSize="0"
LineStyle="Solid"
Color="Blue"
MarkerType="None"/>
<oxy:AreaSeries ItemsSource="{Binding SpeedXDistanceUpperLimit}"
Fill="AliceBlue"
DataFieldX="X"
DataFieldY="Y"
StrokeThickness="1"
MarkerSize="0"
LineStyle="Solid"
Color="DarkGray"
MarkerType="None"/>
</oxy:Plot.Series>
</oxy:Plot>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我使用 C#、wpf、OxyPolt。
我需要标签“标题名称,m”的边距。
xmlns:oxy="http://oxyplot.org/wpf"
<oxy:Plot>
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding DataVM}"
StrokeThickness="2" DataFieldX="X" DataFieldY="Y"/>
</oxy:Plot.Series>
<oxy:Plot.Axes>
<oxy:LinearAxis Position="Bottom" Title="Title name"/>
<oxy:LinearAxis Position="Left" Title="Title name, m"/>
</oxy:Plot.Axes>
</oxy:Plot>
Run Code Online (Sandbox Code Playgroud) 我想在我的Windows窗体中停靠一个OxyPlot图并绘制函数图y = 2x - 7.我已经下载了OxyPlot并添加了对我项目的引用.我使用以下代码将绘图添加到我的表单:
public partial class GraphForm : Form
{
public OxyPlot.WindowsForms.Plot Plot;
public Graph()
{
InitializeComponent();
Plot = new OxyPlot.WindowsForms.Plot();
Plot.Model = new PlotModel();
Plot.Dock = DockStyle.Fill;
this.Controls.Add(Plot);
Plot.Model.PlotType = PlotType.XY;
Plot.Model.Background = OxyColor.FromRgb(255, 255, 255);
Plot.Model.TextColor = OxyColor.FromRgb(0, 0, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我看到白色背景,控件已创建,但它只是一个白色背景.我环顾了OxyPlot.Plot班上的成员,但我找不到办法来解决问题.如何在图表中绘制方程式?
我正在异步获取数据并尝试通过 LineSeries 填充绘图,但在更新绑定集合 (ObservableCollection) 时绘图不会刷新。注意:当绑定集合更改时,我有一个 XAML 行为来调用 InvalidatePlot(true)。
谁能解释为什么情节没有按预期更新?
WPF .Net 4.0 OxyPlot 2014.1.293.1
我有以下 XAML 数据模板,您可以看到 LineSeries ItemsSource 绑定到 ViewModel 中的属性 (PlotData):
<DataTemplate DataType="{x:Type md:DataViewModel}">
<Grid>
<oxy:Plot x:Name="MarketDatePlot"
Margin="10">
<oxy:Plot.Axes>
<oxy:DateTimeAxis Position="Bottom"
StringFormat="dd/MM/yy"
MajorGridlineStyle="Solid"
MinorGridlineStyle="Dot"
IntervalType="Days"
IntervalLength="80" />
<oxy:LinearAxis Position="Left"
MajorGridlineStyle="Solid"
MinorGridlineStyle="Dot"
IntervalLength="100" />
</oxy:Plot.Axes>
<oxy:LineSeries ItemsSource="{Binding Path=PlotData, Mode=OneWay}" />
<i:Interaction.Behaviors>
<behaviors:OxyPlotBehavior ItemsSource="{Binding Path=PlotData, Mode=OneWay}" />
</i:Interaction.Behaviors>
</oxy:Plot>
</Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
正如我所说,ViewModel 异步请求并填充绑定集合(绑定集合的实际填充发生在 UI 线程上):
public sealed class DataViewModel : BaseViewModel, IDataViewModel
{
private readonly CompositeDisposable _disposable;
private readonly CancellationTokenSource …Run Code Online (Sandbox Code Playgroud) 我正在将 OxyPlot 用于 WPF。有一个函数 ResetAllAxes() 可以重置两个轴。如何仅重置 X 或 Y 轴?谢谢