C# Oxyplot Plotmodel High AxisTickLabel不能完全读取多个Y轴
我正在尝试调整到Y轴之间的距离,以便用户可以读取整个AxisTickLabel。 有我可以使用的财产或东西吗 我的PlotModel如下所示: C#:C# Oxyplot Plotmodel High AxisTickLabel不能完全读取多个Y轴,c#,wpf,oxyplot,C#,Wpf,Oxyplot,我正在尝试调整到Y轴之间的距离,以便用户可以读取整个AxisTickLabel。 有我可以使用的财产或东西吗 我的PlotModel如下所示: C#: Plot=新的PlotModel { 填充=新厚度(0), DefaultColors=新列表 { 色位, 色速度, 色加速 }, LegenOrientation=LegenOrientation.垂直, LegendPlacement=LegendPlacement.Inside, LegendPosition=LegendPosition.
Plot=新的PlotModel
{
填充=新厚度(0),
DefaultColors=新列表
{
色位,
色速度,
色加速
},
LegenOrientation=LegenOrientation.垂直,
LegendPlacement=LegendPlacement.Inside,
LegendPosition=LegendPosition.TopRight,
LegendBackground=OxyColor.FromAColor(200,OxyColor.White),
LegendBorder=OxyColor.黑色,
PlotType=PlotType.XY
};
//亚克斯
_axisPosition=新的线性Axis
{
AxislineColor=颜色位置,
TicklineColor=颜色位置,
text颜色=颜色位置,
AxisTickToLabelInstance=0,
位置=轴位置。左,
Key=“位置”
};
Plot.Axes.Add(_axisPosition);
_seriesPosition=新的线条系列
{
Title=(字符串)converter.Convert(新对象[]{“”,“MotionProfilePosition”},null,null,CultureInfo.CurrentCulture)+“[”+UnitItemPosition.ToString()+“]”,
YAxisKey=“位置”
};
Plot.Series.Add(_seriesPosition);
_axisVelocity=新的线性轴
{
AxislineColor=色速度,
TicklineColor=色速度,
AxisTickToLabelInstance=0,
位置=轴位置。左,
text颜色=色速度,
Key=“速度”
};
Plot.Axes.Add(_axisVelocity);
_seriesVelocity=新的线条系列
{
Title=(字符串)converter.Convert(新对象[]{“”,“MotionProfileVelocity”},null,null,CultureInfo.CurrentCulture)+“[”+UnitItemVelocity.ToString()+”,
YAxisKey=“速度”
};
Plot.Series.Add(_seriesVelocity);
_轴加速度=新直线轴
{
AxislineColor=颜色加速度,
text颜色=颜色加速度,
AxisTickToLabelInstance=0,
位置=轴位置。左,
Key=“加速”
};
Plot.Axes.Add(_轴加速度);
_系列加速=新系列
{
Title=(字符串)converter.Convert(新对象[]{“”,“MotionProfileAcceleration”},null,null,CultureInfo.CurrentCulture)+“[”+UnitItemAcceleration.ToString()+”,
YAxisKey=“加速”
};
绘图系列添加(_系列加速);
//XAxis
_axisTime=新的LinearAxis
{
位置=轴位置。底部,
Key=“time”,
单位=单位时间
};
Plot.Axes.Add(_axisTime);
XAML:
运动轮廓
运动轮廓
麦塞尔运动
运动轮廓仪
作为用户,您可以从给定的3个轴中选择要查看的轴。
对于更高的TickLabelValue>1000,值到达下一个Y轴时很难读取
PositionTier是您要查找的属性。以下是我用来创建该图像的代码:
PlotModel = new PlotModel();
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "First",
Minimum = 0,
Maximum = 10000
}) ;
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "Second",
Minimum = 0,
Maximum = 10000,
PositionTier = 1
});
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "Third",
Minimum = 0,
Maximum = 10000,
PositionTier = 2
});
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Bottom,
Title = "x"
});
<oxy:PlotView Grid.Row="0" Margin="0,0,0,15" Model="{Binding Plot, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Tag="{Binding Path=DataContext, ElementName=MotionControlMain}" Controller="{Binding Controller, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" >
<oxy:PlotView.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<MenuItem IsCheckable="True" Command="{Binding UpdatePlotCommand}"
IsChecked="{Binding DisplayPosition}"
Foreground="{Binding ColorPosition, Converter={StaticResource OxyColorConverter}}">
<MenuItem.Header>
<MultiBinding Converter="{StaticResource LangConverter}">
<Binding Path="SelectedLanguage" Mode="OneWay"/>
<Binding>
<Binding.Source>MotionProfileMItemPos</Binding.Source>
</Binding>
</MultiBinding>
</MenuItem.Header>
</MenuItem>
<MenuItem IsCheckable="True" Command="{Binding UpdatePlotCommand}"
IsChecked="{Binding DisplayVelocity}"
Foreground="{Binding ColorVelocity, Converter={StaticResource OxyColorConverter}}">
<MenuItem.Header>
<MultiBinding Converter="{StaticResource LangConverter}">
<Binding Path="SelectedLanguage" Mode="OneWay"/>
<Binding>
<Binding.Source>MotionProfileMItemVelo</Binding.Source>
</Binding>
</MultiBinding>
</MenuItem.Header>
</MenuItem>
<MenuItem IsCheckable="True" Command="{Binding UpdatePlotCommand}"
IsChecked="{Binding DisplayAcceleration}"
Foreground="{Binding ColorAcceleration, Converter={StaticResource OxyColorConverter}}">
<MenuItem.Header>
<MultiBinding Converter="{StaticResource LangConverter}">
<Binding Path="SelectedLanguage" Mode="OneWay"/>
<Binding>
<Binding.Source>MotionProfileMItemAccel</Binding.Source>
</Binding>
</MultiBinding>
</MenuItem.Header>
</MenuItem>
<MenuItem IsCheckable="True" Command="{Binding UpdatePlotCommand}"
IsChecked="{Binding DisplayJerk}"
Foreground="{Binding ColorJerk, Converter={StaticResource OxyColorConverter}}">
<Separator/>
<MenuItem Command="{Binding ResetPlotCommand}">
<MenuItem.Header>
<MultiBinding Converter="{StaticResource LangConverter}">
<Binding Path="SelectedLanguage" Mode="OneWay"/>
<Binding>
<Binding.Source>MotionProfileMItemReset</Binding.Source>
</Binding>
</MultiBinding>
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</oxy:PlotView.ContextMenu>
</oxy:PlotView>
PlotModel = new PlotModel();
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "First",
Minimum = 0,
Maximum = 10000
}) ;
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "Second",
Minimum = 0,
Maximum = 10000,
PositionTier = 1
});
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "Third",
Minimum = 0,
Maximum = 10000,
PositionTier = 2
});
PlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Bottom,
Title = "x"
});