none
OWCでの対数グラフについて RRS feed

  • 質問

  • OWCを用いて、対数グラフ(X-Y:log-log)を作成しようと思います。
    Chart上の縦軸(Y軸)のスケーリングは下記設定で可能なのですが、横軸(X軸)のスケーリング
    が設定がうまくいきません。

       Dim chConstants
       Dim scValueAxisScaling

       Set chConstants = ChartSpace1.Constants
       Set scValueAxisScaling = ChartSpace1.Charts(0).Axes(chConstants.chAxisPositionValue).Scaling
       scValueAxisScaling.Type = chConstants.chScaleTypeLogarithmic
       scValueAxisScaling.Maximum = 100
       scValueAxisScaling.LogBase = 10

     

    どなたかご教授いただけませんでしょうか・・

     

    2008年3月4日 1:39

回答

  • 要望に沿うかどうかわかりませんが、散布図であればX軸にも対数目盛を表示することができます。

     

    ※ASP.NET2.0 OWC11で確認しています。

    Code Snippet

    Dim chartSpace As ChartSpace = New ChartSpaceClass()
    Dim chChart As ChChart = chartSpace.Charts.Add(0)
    '散布図
    chChart.Type = ChartChartTypeEnum.chChartTypeScatterSmoothLineMarkers

     

    'Y軸
    Dim YAxis As ChScaling
    YAxis = chChart.Axes(ChartAxisPositionEnum.chAxisPositionLeft).Scaling
    YAxis.Type = ChartScaleTypeEnum.chScaleTypeLogarithmic
    YAxis.Maximum = 100
    YAxis.LogBase = 10

     

    'X軸
    Dim XAxis As ChScaling
    XAxis = chChart.Axes(ChartAxisPositionEnum.chAxisPositionBottom).Scaling
    XAxis.Type = ChartScaleTypeEnum.chScaleTypeLogarithmic
    XAxis.Maximum = 100
    XAxis.LogBase = 10

     

    '値をプロット
    Dim series As ChSeries = chChart.SeriesCollection.Add(0)
    series.SetData( _
     ChartDimensionsEnum.chDimYValues, _
     CInt(ChartSpecialDataSourcesEnum.chDataLiteral), _
     "1,10,20,30,40,50")

     

    series.SetData( _
     ChartDimensionsEnum.chDimXValues, _
     CInt(ChartSpecialDataSourcesEnum.chDataLiteral), _
     "1,10,20,30,40,50")

     

    2008年3月6日 13:10

すべての返信

  • 要望に沿うかどうかわかりませんが、散布図であればX軸にも対数目盛を表示することができます。

     

    ※ASP.NET2.0 OWC11で確認しています。

    Code Snippet

    Dim chartSpace As ChartSpace = New ChartSpaceClass()
    Dim chChart As ChChart = chartSpace.Charts.Add(0)
    '散布図
    chChart.Type = ChartChartTypeEnum.chChartTypeScatterSmoothLineMarkers

     

    'Y軸
    Dim YAxis As ChScaling
    YAxis = chChart.Axes(ChartAxisPositionEnum.chAxisPositionLeft).Scaling
    YAxis.Type = ChartScaleTypeEnum.chScaleTypeLogarithmic
    YAxis.Maximum = 100
    YAxis.LogBase = 10

     

    'X軸
    Dim XAxis As ChScaling
    XAxis = chChart.Axes(ChartAxisPositionEnum.chAxisPositionBottom).Scaling
    XAxis.Type = ChartScaleTypeEnum.chScaleTypeLogarithmic
    XAxis.Maximum = 100
    XAxis.LogBase = 10

     

    '値をプロット
    Dim series As ChSeries = chChart.SeriesCollection.Add(0)
    series.SetData( _
     ChartDimensionsEnum.chDimYValues, _
     CInt(ChartSpecialDataSourcesEnum.chDataLiteral), _
     "1,10,20,30,40,50")

     

    series.SetData( _
     ChartDimensionsEnum.chDimXValues, _
     CInt(ChartSpecialDataSourcesEnum.chDataLiteral), _
     "1,10,20,30,40,50")

     

    2008年3月6日 13:10
  •   Tesraさん

    こんにちは。回答ありがとうございます。

     

    なるほど、散布図にする必要があったんですね・・・

    Excelでグラフを書く時を考えれば、当然のことですね・・・

     

    Chart.Typeを、chChartTypeScatter***に設定し、無事目的を達成することが出来ました。

     

    ありがとうございました。

     

    2008年3月11日 2:00