2010-09-05 13 views
2

Je veux faire ce qui suit avec les graphiques de la boîte à outils WPF:Deux LineSeries avec le même axe Y dans WPF graphiques Toolkit

J'ai deux séries de ligne qui doivent utiliser le même axe y (ie je les veux tous deux être à la même échelle). Je pourrais donner à chacun d'entre eux la même définition d'axe afin qu'ils se chevauchent (et puis en avoir un avec une visibilité réduite), mais ce n'est pas mon meilleur choix.

C'est la solution dont je parle:

<charts:LineSeries Name="ExternalMeasureSeries" 
       IndependentValueBinding="{Binding Time}" 
       DependentValueBinding="{Binding ExternalMeasure}"> 
    <charts:LineSeries.DataPointStyle> 
     <Style TargetType="charts:LineDataPoint"> 
      <Setter Property="Background" Value="Red"/> 
      <Setter Property="Opacity" Value="0" /> 
     </Style> 
    </charts:LineSeries.DataPointStyle> 
    <!-- Vertical axis for external measure curve --> 
    <charts:LineSeries.DependentRangeAxis> 
     <charts:LinearAxis 
      Orientation="Y" 
      Title="Measurement" 
      Minimum="0" 
      Maximum="30"/> 
    </charts:LineSeries.DependentRangeAxis> 
</charts:LineSeries> 
<charts:LineSeries Name="InternalMeasureSeries" 
        IndependentValueBinding="{Binding Time}" 
        DependentValueBinding="{Binding InternalMeasure}"> 
    <charts:LineSeries.DataPointStyle> 
     <Style TargetType="charts:LineDataPoint"> 
      <Setter Property="Background" Value="Orange"/> 
      <Setter Property="Opacity" Value="0" /> 
     </Style> 
    </charts:LineSeries.DataPointStyle> 
    <!-- Vertical axis for internal measure curve --> 
    <charts:LineSeries.DependentRangeAxis> 
     <charts:LinearAxis 
      Orientation="Y" 
      Minimum="0" 
      Maximum="30" 
      Visibility="Collapsed"/> 
    </charts:LineSeries.DependentRangeAxis> 
</charts:LineSeries> 

Est-il possible de définir plus d'une série avec le même axe Y?

J'ai trouvé que toolkit version 3.5.0.0 a quelque chose appelé StackedLineSeries mais que la version 3.5.40128.1 qui est ce qui est installé dans la version Février 2010 de la boîte à outils, il n'est pas là. A-t-il déménagé dans un autre espace de noms clr?

Répondre

2

J'ai fait face au même problème et j'ai trouvé la solution suivante. Vous pouvez ajouter les deux séries au même graphique et masquer le libellé Axis de la deuxième série en définissant Width sur 0;

<charts:LinearAxis 
Orientation="Y" 
Title="Measurement" 
Minimum="0" 
Maximum="30" 
**Width = "0"** 
/> 

Hope this helps

2

J'ai un tableau avec des séries 3 lignes. Les deux premières séries représentent l'humidité relative et la troisième représente le point de rosée.
Je veux dessiner les 2 premières séries sur le même axe Y. J'ai créé mes axes dans une section de ressources. Dans mon exemple, ceci est dans un TabItem.

<TabItem Header="rH"> 
<TabItem.Resources> 
    <chartingToolkit:LinearAxis Orientation="Y" HorizontalAlignment="Left" Title="rH /%" x:Key="RHYAxis" /> 
    <chartingToolkit:LinearAxis Orientation="Y" HorizontalAlignment="Right" Title="Dew point /°C" x:Key="DewPointYAxis" /> 
</TabItem.Resources> 
<chartingToolkit:Chart HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Title="Relative Humidity" IsEnabled="True"> 
    <chartingToolkit:Chart.Series> 
     <chartingToolkit:LineSeries DependentRangeAxis="{StaticResource RHYAxis}" IsSelectionEnabled="False" ItemsSource="{Binding Path=RHCollection}" IndependentValuePath="TimeStamp" DependentValuePath="rH" Title="Measured rH" /> 
     <chartingToolkit:LineSeries DependentRangeAxis="{StaticResource RHYAxis}" IsSelectionEnabled="False" ItemsSource="{Binding Path=CorrectedRHCollection}" IndependentValuePath="TimeStamp" DependentValuePath="CorrectedRH" Title="Corrected rH" /> 
     <chartingToolkit:LineSeries DependentRangeAxis="{StaticResource DewPointYAxis}" IsSelectionEnabled="False" ItemsSource="{Binding Path=DewPointCollection}" IndependentValuePath="TimeStamp" DependentValuePath="DewPoint" Title="Dew point" /> 
    </chartingToolkit:Chart.Series> 
</chartingToolkit:Chart>