无法使用多个Y轴完全读取Oxyplot Plotmodel High AxisTickLabel

问题描述

我试图将“之间的距离”调整为Y轴,以便用户可以读取整个AxisTickLabel。 是否有财产或我可以使用的东西?

我的PlotModel看起来像这样:

C#:

  Plot = new PlotModel
  {
    Padding = new OxyThickness(0),DefaultColors = new List<OxyColor>
    {
      ColorPosition,ColorVelocity,ColorAcceleration
    },LegendOrientation = LegendOrientation.Vertical,LegendPlacement = LegendPlacement.Inside,LegendPosition = LegendPosition.TopRight,LegendBackground = OxyColor.FromAColor(200,OxyColors.White),LegendBorder = OxyColors.Black,PlotType = PlotType.XY
  };

  // YAxes
  _axisPosition = new LinearAxis
  {
    AxislineColor = ColorPosition,TicklineColor = ColorPosition,TextColor = ColorPosition,AxisTickToLabelDistance = 0,Position = AxisPosition.Left,Key = "position"
  };
  Plot.Axes.Add(_axisPosition);
  _seriesPosition = new LineSeries
  {
    Title = (string)converter.Convert(new object[] {"","MotionProfilePosition"},null,CultureInfo.CurrentCulture) + " [" + UnitItemPosition.ToString() + "]",YAxisKey = "position"

  };
  Plot.Series.Add(_seriesPosition);

  _axisVelocity = new LinearAxis
  {
    AxislineColor = ColorVelocity,TicklineColor = ColorVelocity,TextColor = ColorVelocity,Key = "velocity"
  };
  Plot.Axes.Add(_axisVelocity);
  _seriesVelocity = new LineSeries
  {
    Title = (string)converter.Convert(new object[] {"","MotionProfileVelocity"},CultureInfo.CurrentCulture) + " [" + UnitItemVelocity.ToString() + "]",YAxisKey = "velocity"
  };
  Plot.Series.Add(_seriesVelocity);

  _axisAcceleration = new LinearAxis
  {
    AxislineColor = ColorAcceleration,TextColor = ColorAcceleration,Key = "acceleration"
  };
  Plot.Axes.Add(_axisAcceleration);
  _seriesAcceleration = new LineSeries
  {
    Title = (string)converter.Convert(new object[] {"","MotionProfileAcceleration"},CultureInfo.CurrentCulture) + " [" + UnitItemAcceleration.ToString() + "]",YAxisKey = "acceleration"
  };
  Plot.Series.Add(_seriesAcceleration);


  // XAxis
  _axisTime = new LinearAxis
  {
    Position = AxisPosition.Bottom,Key = "time",Unit = UnitItemTime
  };
  Plot.Axes.Add(_axisTime);

XAML:

    <oxy:PlotView Grid.Row="0" Margin="0,15" Model="{Binding Plot,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" Tag="{Binding Path=DataContext,ElementName=MotionControlMain}" Controller="{Binding Controller,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>

作为用户,您可以从给定的3中选择想要看到的轴。 对于大于1000的TickLabelValues,值到达下一个Y轴时很难读取。

Screenshot Plotmodel

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)