2017-12-22 3 views
0

AsposeスライドAPIを使用してセカンダリX軸(水平軸)なしでデュアルYチャートを描画できますか?2シリーズはClusteredColumn、その他はScatterWithStraightLinesAndMarkers ? (ここでは、それぞれの系列の値が左右のY軸にそれぞれプロットされていると仮定しています)。誰かがこれで私を助けることができますか?前もって感謝します。Aspose二次水平軸を持たないデュアルY軸を持つチャートを描画する

私はまた、Aspose SlidesがPowerpoint Version 2013をサポートしているかどうかを知りたがっていますか? チャートスタイルを設定するときにスライドに問題が発生しています。残念ながら私はPPTXファイルを開いて、チャートスタイルを修正する必要があります。

答えて

0

@KrithikaM、

私は、複数の軸上のグラフをプロットするための要件を観察しています。次のサンプルコードを使用してみてください。クラスタ化された縦棒グラフを1つの軸に追加し、他の軸に線を追加しました。共有サンプルが参考になることを願っています。第二に、Aspose.SlidesはPowerPointのMSOチャートもサポートしています。あなたが文字で問題がある場合は、私たちと共有することができます。私たちはあなたのためにそれを調査します。

public static void chartwithmultipleTypes() 
{ 
    //Instantiate Presentation class that represents PPTX file//Instantiate Presentation class that represents PPTX file 
    Presentation pres = new Presentation(); 

    //Access first slide 
    ISlide sld = pres.Slides[0]; 

    // Add chart with default data 
    IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500); 

    //Setting chart Title 
    //chart.ChartTitle.TextFrameForOverriding.Text = "Sample Title"; 
    chart.ChartTitle.AddTextFrameForOverriding("Sample Title"); 
    chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True; 
    chart.ChartTitle.Height = 20; 
    chart.HasTitle = true; 

    //Set first series to Show Values 
    chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true; 

    //Setting the index of chart data sheet 
    int defaultWorksheetIndex = 0; 

    //Getting the chart data worksheet 
    IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook; 

    //Delete default generated series and categories 
    chart.ChartData.Series.Clear(); 
    chart.ChartData.Categories.Clear(); 
    int s = chart.ChartData.Series.Count; 
    s = chart.ChartData.Categories.Count; 

    //Adding new series 
    chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type); 
    chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type); 

    //Adding new categories 
    chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); 
    chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); 
    chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); 

    //Take first chart series 
    IChartSeries series = chart.ChartData.Series[0]; 

    //Now populating series data 

    series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20)); 
    series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50)); 
    series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30)); 

    //Setting fill color for series 
    series.Format.Fill.FillType = FillType.Solid; 
    series.Format.Fill.SolidFillColor.Color = Color.Red; 


    //Take second chart series 
    series = chart.ChartData.Series[1]; 

    //Now populating series data 
    series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30)); 
    series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10)); 
    series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60)); 

    //Setting fill color for series 
    series.Format.Fill.FillType = FillType.Solid; 
    series.Format.Fill.SolidFillColor.Color = Color.Green; 


    //create custom labels for each of categories for new series 

    //first label will be show Category name 
    IDataLabel lbl = series.DataPoints[0].Label; 
    lbl.DataLabelFormat.ShowCategoryName = true; 

    lbl = series.DataPoints[1].Label; 
    lbl.DataLabelFormat.ShowSeriesName = true; 

    //Show value for third label 
    lbl = series.DataPoints[2].Label; 
    lbl.DataLabelFormat.ShowValue = true; 
    lbl.DataLabelFormat.ShowSeriesName = true; 
    lbl.DataLabelFormat.Separator = "/"; 


    /////Addding second type 
    //Add new series 
    series=chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 3, "Series 3"), ChartType.ScatterWithSmoothLines); 


    //Add new point (1:3) there. 
    series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 1, 3, 10), fact.GetCell(defaultWorksheetIndex, 1, 4, 13)); 

    //Add new point (2:10) 
    series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 20), fact.GetCell(defaultWorksheetIndex, 2, 4, 15)); 



    //Changing the chart series marker 
    series.Marker.Size = 10; 
    series.Marker.Symbol = MarkerStyleType.Star; 
    series.PlotOnSecondAxis = true; 

    //Take second chart series 
    series=chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 5, "Series 4"), ChartType.ScatterWithStraightLinesAndMarkers); 

    //Add new point (5:2) there. 
    series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 1, 5, 5), fact.GetCell(defaultWorksheetIndex, 1, 6, 2)); 

    //Add new point (3:1) 
    series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 5, 3), fact.GetCell(defaultWorksheetIndex, 2, 6, 1)); 

    //Add new point (2:2) 
    series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 5, 2), fact.GetCell(defaultWorksheetIndex, 3, 6, 2)); 

    //Add new point (5:1) 
    series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 5, 5), fact.GetCell(defaultWorksheetIndex, 4, 6, 1)); 

    //Changing the chart series marker 
    series.Marker.Size = 10; 
    series.Marker.Symbol = MarkerStyleType.Circle; 

    series.PlotOnSecondAxis = true; 


    //Save presentation with chart 
    pres.Save("C:\Presentations\AsposeChart.pptx", SaveFormat.Pptx); 
} 

私はAsposeのSupport developer/Evangelistとして働いています。

関連する問題